String zusammensetzen



  • Hallo!

    Ich möchte einen String aus einem anderen String und einer Zahl zusammensetzen. Leider funktioniert folgende (für mich intuitive) Zuweisung nicht:

    counter = 1;
    CString pl = "PlanePlane"+counter;
    

    Das liefert leider
    pl = "lanePlane"

    Was ist falsch, wie mache ich es richtig?



  • C++ hat keine automatische Umwandlung von Zahlen in Strings. Im Gegenteil - String-Literale gelten als char-Pointer und deine Addition wird in Pointer-Arithmetik umgewandelt.

    Also kannst du entweder die Standard-Variante verwenden, den String über Stringstreams zusammenzusetzen - oder (da du CString erwähnt hast) du nutzt Format():

    //Variante a:
    stringstream conv;
    conv<<"PlaneLane"<<counter;
    string pl = conv.str();
    
    //Variante b:
    CString pl;
    pl.Format("PlaneLane%i",counter);
    


  • Moin!

    Muss ich bei Variante 1 noch etwas includieren? Er kennt stringstream nicht...



  • raterchen schrieb:

    Moin!

    Muss ich bei Variante 1 noch etwas includieren? Er kennt stringstream nicht...

    #include <sstream>


Anmelden zum Antworten