Funktion von char auf string umsetzen?
-
Hi,
ich beschäftige mich erst seit 2-3 Wochen mit C++ und hab hier im Forum eine funktion gefunden für das Splitten eines Strings!
Hier ist sie
[cppinline const std::vectorstd::string parseString (std::string s, char sep)
{
std::string::size_type position = 0;
std::vectorstd::string result;do result.push_back(s.substr(position,s.find(sep,position)-position));
while((++position+=result[result.size()-1].length()) && position < s.length());return result;
}
]/cpp]ich möchte gern den 2. parameter durch einen std::string ersetzen so das man mit dieser funktion auch nach strings trennen kann und nicht nur nach chars.
ich hab den 2. parameter einfach durch ein std::string ersetzt doch dann bekomm ich einen absturz wenn ich mehr als mit einem zeichen trennen will
Kann mir jemand helfen?
-
schau dir zuerst mal die Grundlagen von C/C++ an, sonst wird es dir nicht viel helfen wenn wir dir denn code jetzt einfach darunter posten, da du ihn wahrscheinlich nicht 100Prozent kappierst. (wenns schon an codetags scheitert)
-
inline const std::vector<std::string> parseString (std::string s, char sep) { std::string::size_type position = 0; std::vector<std::string> result; do result.push_back(s.substr(position,s.find(sep,position)-position)); while((++position+=result[result.size()-1].length()) && position < s.length()); return result; }
besser? tust ja so als ob dir nie flüchtigkeitsfehler passieren.
-
Hast du zufällig ne stl-referenz zur hand? Meine sagt das:
size_type find(const string& s,size_type pos=0);
Gibt die Position zurück, an der der Substring s gefunden wird, andernfalls wird string::npos zurückgegeben. Gesucht wird ab pos. find() findet die erste Position bei mehrfachem Vorkommen von s.