Extrahieren eines Teilstrings - find() und substr()



  • ich möchte einen Teilstring (Zahl) aus einem String extrahieren, und zwar so:

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
                          string line = "(5/16)\n";
                          cout<<line;
                          string::size_type Pos1 = line.find("/");
                          string::size_type Pos2 = line.find(")");
                          string FirstVNr = line.substr(1, Pos1-1);
                          string SecondVNr = line.substr(Pos1+1, Pos2-1);
                          cout<<"Pos1: "<<Pos1<<" Pos2: "<<Pos2<<endl;
                          cout<<FirstVNr<<" "<<SecondVNr<<endl;
    
                          cin.get();
    }
    

    Ausgabe:

    (5/16)
    Pos1: 2 Pos2: 5
    5 16)
    

    Wieso krieg ich hier für SecondVNr keine reine Zahl??



  • substr() nimmt die Parameter, Startposition und Länge, nicht Endposition.

    So müsste es gehen:

    string SecondVNr = line.substr(Pos1+1, Pos2-Pos1-1);



  • hey, perfekt!
    vielen dank für deine hilfe

    Und: Wo sonst gibts nach weniger als einer halben Stunde (mind.) eine treffende Anwort??
    🙂


Anmelden zum Antworten