ho stringa come questa: '123plus43times7'String Flusso in C++ per analizzare la stringa di parole e numeri
dove i numeri sono seguiti da parole da un dizionario.
ho capito che posso estrarre int/numeri utilizzando l'operatore >>
:
StringStream >> number
posso ottenere il numero. Tuttavia, il flusso ha ancora il numero in esso. Come rimuovo il numero quando la lunghezza del numero è sconosciuta o dovrei scoprire la lunghezza del numero e quindi usare str.substr() per creare un nuovo Stream String? Qualsiasi altro metodo migliore per farlo usando C++ STL String e SStream sarebbe molto apprezzato.
Sembrerebbe molto più semplice da leggere solo l'intera stringa in un std :: string e quindi scorrere i caratteri per separarli in blocchi di cifre consecutive e blocchi di lettere. Quando hai i blocchi separati, puoi convertire le sequenze di cifre in interi tramite 'std :: atoi()'. –
@ DanMašek è corretto. Una volta ottenuto un numero, prendi una 'stringa' e una' >> 'in una' stringa' si fermerà solo su spazi bianchi. Afferrerà le tue lettere, i tuoi numeri e tutto il resto. – user4581301