Ich versuche, eine einfache Zeichenfolge in C ++ zu analysieren. Ich weiß, dass die Zeichenfolge einen Text mit einem Doppelpunkt enthält, unmittelbar gefolgt von einem Leerzeichen und einer Zahl. Ich möchte nur den Zahlenabschnitt der Zeichenfolge extrahieren. Ich kann nicht nur auf den Platz Tokenize (mit Stream und & lt; & lt;), weil der Text vor dem Doppelpunkt Leerzeichen enthalten kann oder nicht.
Einige Beispielzeichenfolgen könnten sein:
Gesamtspeicherplatz: 9852465
Freier Speicherplatz: 6243863
Sektoren: 4095
Ich würde gerne die Standardbibliothek verwenden, aber wenn Sie eine andere Lösung haben, können Sie das auch posten, da andere mit der gleichen Frage möglicherweise andere Lösungen sehen möchten.
Der Vollständigkeit halber ist hier eine einfache Lösung in C:
%Vor% Erklärung: %*[^:]
sagt, dass so viele mögliche Zeichen eingelesen werden sollen, dass sie keine Doppelpunkte sind, und die *
unterdrückt die Zuweisung. Dann wird die Ganzzahl nach dem Doppelpunkt und jedem dazwischenliegenden Leerraum eingelesen.
Ich kann nicht nur in den Raum tokenisieren (mit sstream und & lt; & lt;), weil der Text vor dem Doppelpunkt Leerzeichen enthalten kann oder nicht.
Richtig, aber Sie können std::getline
verwenden:
Ähnlich wie Konrads Antwort, aber mit istream::ignore
: