I Zeichenfolge wie diese: '123plus43times7'String-Stream in C++ Folge von Worten zu analysieren und Nummern
wo Zahlen durch Worte aus einem Wörterbuch folgt.
Ich verstehe, dass ich kann unter Verwendung des >>
Operator int/Zahlen extrahieren:
StringStream >> number
ich die Nummer bekommen. Der Stream enthält jedoch immer noch die Nummer. Wie entferne ich die Nummer, wenn die Länge der Nummer unbekannt ist, oder soll ich die Länge der Zahl herausfinden und dann strstr() verwenden, um einen neuen String Stream zu erstellen? Jede andere bessere Methode, um es mit C++ STL String und SStream tun würde wirklich geschätzt.
Es wäre viel einfacher scheinen nur die gesamte Zeichenfolge in eine lesen std :: string und iterieren dann über die Zeichen, um sie in Blöcke von aufeinanderfolgenden Ziffern und Buchstabenblöcken zu trennen. Wenn Sie die Blöcke getrennt haben, können Sie die Ziffernfolgen mit 'std :: atoi()' in Ganzzahlen umwandeln. –
@ DanMašek hat Recht. Sobald Sie eine Zahl erhalten haben, greifen Sie eine 'Zeichenkette' und ein' >> 'zu einer' Zeichenkette' wird nur auf Leerstellen enden. Es wird Ihre Briefe, Ihre Zahlen und alles andere, was sich in den Weg stellt, ergreifen. – user4581301