stringteilung
-
hallo ich brauch dringend eure hilfe:
ich hab ein string z.B.:"1233;4500;slsvp1;l26" und möchte das in teilstring aufteilen also "teilstring1";"teilstring2";"teilstring3";"teilstring4" .
das ";" ist das trennzeichen der strings.will aber nicht des der nach "1233" oder "4500" sucht(nur beispiel),weil sich die werte ständig verändern.der große string soll aufgeteilt werden in diese 4 strings.kann sich mal bitte jemand erbarmen und des programmiern?
-
-
Guten Abend!
Ich habe jetzt ganz schnell folgendes zusammengebastelt:
#include <iostream> #include <string> #include <vector> void split_string(const std::string& str, std::vector<std::string>& target, char seperator) { unsigned startpos = 0, endpos; while ((endpos = str.find(seperator, startpos)) != std::string::npos) { target.push_back(str.substr(startpos, endpos-startpos)); startpos = endpos+1; if (startpos == str.size()) return; } target.push_back(str.substr(startpos, str.size()-startpos)); } int main() { std::vector<std::string> parts; split_string("foobar;blubb;bla;m00k00;stfu", parts, ';'); for (unsigned i=0; i<parts.size(); ++i) std::cout << parts[i] << '\n'; }
Es gibt sicherlich bessere Lösungen (z.B. stringstreams, und auch wenn man diese nicht
verwendet liese sich obige Funktion möglicherweise eleganter schreiben...), aber es scheint
zu funktionierengruß,
walker
-
danke für den code!
kannst du nur noch beschreiben was in den jeweiligen zeilen passiert,ich komm da irgendwie nicht mit.