Avatar ·

String-Split in C++ mit Trennzeichen (string delimiter) — wie macht man split?

Hallo zusammen! Ich habe gerade angefangen, C++ zu lernen, und bin auf eine Aufgabe gestoßen, die in anderen Sprachen mit einer einzigen Funktion gelöst wird. Ich muss einen String anhand eines Trennzeichens (z. B. einem Komma oder der Teilzeichenkette "::") in Teile zerlegen. In Python schreibe ich `"a,b,c".split(",")` und erhalte eine Liste. In C++ finde ich in der Standardbibliothek nichts Vergleichbares. Es gibt `strtok` aus C, aber das arbeitet mit `char*`, während ich mit `std::string` arbeiten muss. Außerdem modifiziert `strtok` den ursprünglichen String und ist nicht threadsicher. Ich habe versucht, meine eigene Lösung zu schreiben, aber sie funktioniert nicht richtig: ```cpp #include #include std::vector split(std::string s, std::string delimiter) { size_t pos = 0; std::vector tokens; while ((pos = s.find(delimiter)) != std::string::npos) { std::string token = s.substr(0, pos); tokens.push_back(token); s.erase(0, pos + delimiter.length()); } tokens.push_back(s); return tokens; } ```