Wie man über Wörter in einem String in C++ iteriert: Zerlegung eines Strings in Tokens
Hallo zusammen! Ich bin neu in C++ (habe vorher in Python geschrieben) und stehe vor einer Aufgabe, die einfach erscheint, mich aber verwirrt. Ich muss einen String in einzelne Wörter zerlegen und in einer Schleife darüber iterieren. In Python macht man das mit einer Zeile: `for word in sentence.split():`. Aber in C++ war alles komplizierter.
Hier ist ein Beispiel meiner Aufgabe. Es gibt einen String mit einem Satz:
```cpp
std::string text = "Hello, world! This is a test.";
```
Ich muss jedes Wort einzeln erhalten: "Hello,", "world!", "This", "is", "a", "test." (oder ohne Satzzeichen – das sind Details). Ich habe versucht, `std::stringstream` zu verwenden:
```cpp
std::stringstream ss(text);
std::string word;
while (ss >> word) {
std::cout << word << std::endl;
}
```
Das funktioniert, aber nur wenn Wörter durch Leerzeichen getrennt sind. Was ist aber, wenn die Trennzeichen andere sind – Kommas, Punkte, Tabulatoren? Oder wenn der String aus einer CSV-Datei stammt? Außerdem, wie verarbeitet man leere Strings oder Strings mit mehreren aufeinanderfolgenden Leerzeichen richtig? Ich habe gehört, dass...
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen