StringStream Tokenizer
-
Hallo Leute,
habe wirklich sehr lange gesucht und nichts gefunden und selber komme ich auch net drauf.
string buffer; stringstream myStream(data); vector<string> daten; while (myStream >> buffer) daten.push_back(buffer);Wie man vlt. oben erkenne kann will ich einen String trennen und in einem Vector abspeichern. Das klappt auch wunderbar ABER nur wenn die Wörter durch Leerzeichen getrennt sind. Mein String ist aber durch kommas getrennt. Ich komme nicht drauf wie könnte ich das realisieren.
Danke
-
while (std::getline(myStream, buffer, ',')) { daten.push_back(buffer); }
-
-
oder mit boost:
// ... #include <string> #include <boost/tokenizer.hpp> // ... typedef boost::tokenizer<boost::char_separator<char> > tokenizer; typedef boost::char_separator<char> char_separator; // ... std::string a_string("this is just a test"); char_separator sep(" \t\n\r"); // token-trennzeichen tokenizer tok(a_string, sep); // die einzelnen tokens ausgeben, oder was auch immer damit machen =) for (tokenizer::iterator it = tok.begin(); it != tok.end(); ++it) std::cout << (*it) << std::endl;
-
#include <boost/tokenizer.hpp> #include <string> #include <iostream> int main() { typedef boost::tokenizer<boost::char_separator<char>> tokenizer; std::string s = "Hollywood Hank ist echt, mal, der, geilste!"; boost::char_separator<char> sep(" "); tokenizer tok(s, sep); for (tokenizer::iterator it = tok.begin(); it != tok.end(); ++it) std::cout << *it << std::endl; std::cin.get(); }
-
ja doku sollte einer wie du natürlich auch lesen können,
dann wüsstest du, dass man bei Kommas ein wenig anders rangehen muss.
-
Lol, aha.
-
Kóyaánasqatsi schrieb:
#include <boost/tokenizer.hpp> #include <string> #include <iostream> int main() { typedef boost::tokenizer<boost::char_separator<char>> tokenizer; std::string s = "Hollywood Hank ist echt, mal, der, geilste!"; boost::char_separator<char> sep(" ,"); //so tokenizer tok(s, sep); for (tokenizer::iterator it = tok.begin(); it != tok.end(); ++it) std::cout << *it << std::endl; std::cin.get(); }Wo liegt das Problem?
-
Tachyon schrieb:
Wo liegt das Problem?
Habe ich mich auch erst gefragt, aber ich denke er meint das mein Code nach Leerzeichen splittet und nicht nach Leerzeichen && Kommata.