String durchsuchen und in Integerwerten abspeichern



  • Hallo ich habe folgengen String:

    a = "3,1,3,1,5,10,"

    Ich würde gerne den String so zerlegen, dass ich die durch kommagetrennten Werte einzeln habe und sie vom Typ integer sind.
    Also int a = 3; int b = 1; int c = 3 usw...

    Kann mir da jemand helfen? Ich komme echt nicht zurecht! Ich habe schon in einem anderen Forum gepostet, aber mir konnte keiner helfen! Also PLEASE...



  • du wirst wohl nicht drum herum kommen, eine art "explode" funktion zu schreiben (aka tokenize). kurzes googlen brachte mir

    void tokenize(const string& str,
                          vector<string>& tokens,
                          const string& delimiters = " ")
    {
        // Skip delimiters at beginning.
        string::size_type lastPos = str.find_first_not_of(delimiters, 0);
        // Find first "non-delimiter".
        string::size_type pos     = str.find_first_of(delimiters, lastPos);
    
        while (string::npos != pos || string::npos != lastPos)
        {
            // Found a token, add it to the vector.
            tokens.push_back(str.substr(lastPos, pos - lastPos));
            // Skip delimiters.  Note the "not_of"
            lastPos = str.find_first_not_of(delimiters, pos);
            // Find next "non-delimiter"
            pos = str.find_first_of(delimiters, lastPos);
        }
    }
    

    (also angaben ohne gewähr)
    damit müsstest du schreiben können:

    string a = "3,1,3,1,5,10,";
     vector<string> tokens;
     Tokenize(a, tokens, ",");
    

    und jetzt entweder die strings im vector in zahlen verwandeln (siehe unsere FAQ) oder die funktion selbst ein bisschen umändern.



  • JUHU!!!! es funktioniert... vielen vielen Dank! ich habe jetzt fast zwei abende damit verbracht...


Anmelden zum Antworten