1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

string evt. letztes Zeichen löschen

Dieses Thema im Forum "C/C++" wurde erstellt von jaus, 30. April 2006.

  1. jaus

    jaus Grünschnabel

    Moin zusammen,

    hab folgendes Prblem. Ich habe ein string mit beispielweise dem Inhalt:

    "Test;;"

    Am Ende sind zwei ;, aber die dürfen da nicht sein, also müssen sie gelöscht werden. Also folgendes:

    Brauche einen Algorithmus, der erst guckt, ob das letzte Zeichen ein ; ist und wenn ja soll er es löschen. Das soll solange gemacht werden, bis dort kein ; mehr steht... Wie geht es?!

    Ich verzweifel total an den Methoden find_for_last und erase...

    Bitte helfe mir! :(
  2. jaus

    jaus Grünschnabel

    Noch ein kleiner Hinweis... Alle strings, bei denen das gemacht werden soll, sind unterschiedlich lang, also keine feste länge nehmen, sondern .length()
  3. RS9999

    RS9999 Erfahrenes Mitglied

    Hier eine Möglichkeit:

    Code (Text):
    1.  
    2. int main()
    3. {
    4.    string s= "Das is ein Test;;";
    5.    
    6.    s.replace( s.find( ";"),100, "");
    7.    cout<<s<<endl;  
    8. }
    9.  
  4. jaus

    jaus Grünschnabel

    Es sind leider nicht nur am Ende ; sondern auch noch davor und es sollen nur die ganz hinten gelöscht werden!
  5. jaus

    jaus Grünschnabel

    Soetwas ähnliches, wie:

    TestString.replace(TestString.find_last_of(";",1),100,"");

    Nur das da oben funktioniert eben nicht.. Weiß einer wieso?

    Außerdem muss da irgendwie noch eine while-Schleife rein, dass das so oft wiedehrolt wird, bis kein ; mehr ganz hinten... ABER WIE?!
  6. Matthias Reitinger

    Matthias Reitinger ɐɯıǝɹ Premium-User

    Vielleicht so?
    Code (C++):
    1. long pos = s.length();
    2. while (s.at(pos - 1) == ';') pos--;
    3. s.erase(pos, s.length());
  7. jaus

    jaus Grünschnabel

    Danke, genau das habe ich gesucht :)

    Gibt es auch noch eine möglichkeit einen String nach ;; zu durchsuchen und wenn diese Zeichenkette vorhanden es, sie durch ; zu ersetzen?

    Also kurz gesagt ein ;; durch ein ; ersetzen. Nur die Position ist hier immer unterschiedlich...

    Danke schon mal
  8. Matthias Reitinger

    Matthias Reitinger ɐɯıǝɹ Premium-User

    Eine Zeichenkette innerhalb einer Zeichenkette kann man mit der Methode find finden. Zum Entfernen von Zeichen kann man erase aufrufen.

Diese Seite empfehlen