Avatar ·

Wie man Wörter in einem String in C++ durchläuft: Analyse gängiger Methoden

Hallo zusammen! Ich bin ein Anfänger in C++ und verstehe nicht, wie man einen String richtig in einzelne Wörter aufteilt und sie in einer Schleife durchläuft. In Python macht man das mit einer Zeile durch `split()`, aber in C++ ist alles irgendwie kompliziert. Ich habe einen String wie: `"Привет, как дела? У меня всё хорошо!"` Ich muss jedes Wort einzeln ausgeben, dabei Satzzeichen und Leerzeichen ignorieren. Ich habe versucht, `std::stringstream` zu verwenden, aber es entfernt keine Kommas und Fragezeichen – sie bleiben an den Wörtern hängen. Zum Beispiel bekomme ich `"Привет,"` statt `"Привет"`. Ich habe versucht, mein eigenes Rad mit manueller Suche nach Leerzeichen durch `std::string::find` zu schreiben, aber der Code wird riesig und unübersichtlich. Außerdem funktioniert meine Variante nicht mit Tabulatoren und mehreren Leerzeichen. Könnt ihr mir bitte sagen, wie man das richtig und elegant macht? Vorzugsweise in modernem C++ (11/14/17). Gebt bitte ein Codebeispiel, das: 1. Einen String nach Leerzeichen und Satzzeichen in Wörter aufteilt. 2. Überflüssige Leerzeichen und leere Strings ignoriert. 3. Funktioniert.