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.


Anmelden zum Antworten