ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
11424
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    jaus ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    15
    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. #2
    jaus ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    15
    Noch ein kleiner Hinweis... Alle strings, bei denen das gemacht werden soll, sind unterschiedlich lang, also keine feste länge nehmen, sondern .length()
     

  3. #3
    Registriert seit
    Feb 2005
    Ort
    NRW
    Beiträge
    460
    Hier eine Möglichkeit:

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

  4. #4
    jaus ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    15
    Es sind leider nicht nur am Ende ; sondern auch noch davor und es sollen nur die ganz hinten gelöscht werden!
     

  5. #5
    jaus ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    15
    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. #6
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.785
    Vielleicht so?
    Code cpp:
    1
    2
    3
    
    long pos = s.length();
    while (s.at(pos - 1) == ';') pos--; 
    s.erase(pos, s.length());
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”

  7. #7
    jaus ist offline Mitglied
    Registriert seit
    Jun 2005
    Beiträge
    15
    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. #8
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.785
    Eine Zeichenkette innerhalb einer Zeichenkette kann man mit der Methode find finden. Zum Entfernen von Zeichen kann man erase aufrufen.
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”

Thema nicht erledigt

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 12.11.09, 10:49
  2. char letztes zeichen löschen
    Von soeni1987 im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 14.11.07, 20:58
  3. String zeichen löschen!
    Von downset04 im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 4
    Letzter Beitrag: 11.10.06, 11:13
  4. letztes zeichen
    Von fanste im Forum Javascript & Ajax
    Antworten: 10
    Letzter Beitrag: 14.05.05, 16:41
  5. Antworten: 4
    Letzter Beitrag: 26.08.01, 12:14