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 funktionieren 😉

    gruß,
    walker



  • @walker

    danke für den code!

    kannst du nur noch beschreiben was in den jeweiligen zeilen passiert,ich komm da irgendwie nicht mit.


Anmelden zum Antworten