strings verändern



  • Ja ich meine ja auch eine Membervariable m_strirgendwas vom Typ CString.Konntest du dir bestimmt denken.



  • Ich habs so aufgefasst, dass du nen CString hast und eine andere Klasse suchst, diesen zu manipulieren. Daher meine Antwort, wo ich darauf hinweise, dass der CString an sich ja schon einige Methoden zur Manipulation mitbringt.

    Nachtrag: wenn du mit Insert, musst du aufpassen, dass sich die nachfolgenden Buchstaben natürlich vom Index verschieben. Ansonsten nimm den Vorschlag von dokdok mit nem Pufferstring



  • also prinzipiell so?

    string s("stu");    
        len = s.length();   
        s.insert(2, "-");  
    
    cout<<s<<endl;
    


  • Prinzipiell ja

    int i = 0;
    while (i < myString.GetLength())
    {
         myString.Insert(i,'-');
         i += 3;
    }
    
    //wenn an letzter Stelle immer ein "-" sein soll
    myString += "-";
    

    So hab das jetzt nicht getestet, müsste aber funktionieren.



  • Funktioniert prima!

    sowohl dokdoks als auch meine(dank Pellaeons Hinweis)Lösung.

    Wo wir grad bei diesem Thema sind.
    Wie könnte man die Teile des Strings drehen?
    Also nich den gesamten "String(strx.MakeReverse())"...sondern so: aus "stuvwxyz" wird "ts vu wx yz" ergo sollte jedes Zahlenpaar gedreht werden.

    Ich weiß das ergibt alles nich so richtig einen Sinn...ich will mal wissen was für möglichkeiten man beim String-Handling hat...



  • Hallo...

    ums das nochmal aufzugreifen...
    mit "str.Insert" kann ich unter anderem Zeichen einfügen.
    gibt es auch eine Methode um ein einem String 2 Character zu tauschen?
    Zum Beispiel: "123456" wird zu "623451" also 1. und 6. Stelle vertauscht



  • Gibts nicht?

    oder zumindest Zeichen innerhalb eine Strings verschieben?



  • CString str = "123456"; // dein String
    TCHAR cSaved = str.GetAt(0); // Zeichen an der 1. Stelle speichern
    str.SetAt(0, str.GetAt(5)); // Zeichen an der 1. Stelle mit Zeichen an der 6. Stelle ersetzen
    str.SetAt(5, cSaved); // Zeichen an der 1. Stelle mit gespeichertem Zeichen ersetzen
    

    Grüße
    Raphael



  • Danke Rapha...

    Ich versuch das morgen gleich ma... 🙂



  • So funktioniert einwandfrei... thx 🙂


Anmelden zum Antworten