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;
}
```
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs