tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
11346
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Luca Brassi Luca Brassi ist offline Grünschnabel
    Registriert seit
    Jul 2005
    Beiträge
    1
    Hallo,

    ich hab da ein kleines Problem mit dem Suchen und Ersetzen von Teilstrings innerhalb eines Strings.

    Ich möchte im String "message" den Teilstrings "blah" ersetzen durch "12345" und den Teilstring "bloeh" ersetzen durch "67890".

    Dazu habe ich folgenden Ansatz der leider nicht .

    char *ptr
    char message[100] ="ein dummes blah und bloeh beispiel"

    while ((ptr=strstr(message,"blah"))!=NULL)*ptr = "12345";
    while ((ptr=strstr(message,"bloeh"))!=NULL)*ptr = "67890";

    printf("%s\n",message);


    Hoffe Ihr könnt mir da weiterhelfen.
    Geändert von Luca Brassi (26.07.05 um 12:09 Uhr)
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Das kann so natürlich nicht funktionieren. Um einen Substring in einem String durch ein anderes Wort ungleicher Größe zu ersetzen muß man alle Buchstaben nach dem zu ersetzenden Substring so weit nach hinten (bzw. vorne) verschieben/kopieren, bis der Platz genau für den Ersatzstring ausreicht.

    Um also in deinem String "ein dummes blah und bloeh beispiel", das Teilwort "blah" durch "12345" zu ersetzen muß man den Teilstring " und bloeh beispiel" um 2 Stellen nach rechts schieben:

    "ein dummes blah__ und bloeh beispiel"

    Dann kann man das Ersatzwort einfach an der richtigen Stelle drüberschreiben:

    "ein dummes 12345 und bloeh beispiel"

    Das Verschieben kannst du z.B. mit der Funktion memmove bewerkstelligen.

    Alternativ kannst du auch eine zusätzliche Variable benutzen. In diese kopierst du (strncpy) erstmal nur den ersten Teilstring vor dem zu ersetzenden Wort. Dann kopierst du den Ersatzstring hinein und zum Schluß den Rest des Strings hinter dem zu ersetzenden Wort. Letztendlich musst du nur den Originalstring mit dem String deiner temp. Variablen überschreiben.
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. String in Datei suchen und ersetzen
    Von sand13r im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 09.03.09, 17:30
  2. Antworten: 1
    Letzter Beitrag: 20.03.08, 23:15
  3. Suchen u Ersetzen in String?
    Von downset04 im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 2
    Letzter Beitrag: 19.10.06, 14:05
  4. Im String Suchen und ersetzen
    Von heikoarndt im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 25.10.04, 14:53
  5. Ganzen String suchen & ersetzen
    Von Moritz123 im Forum PHP
    Antworten: 3
    Letzter Beitrag: 09.04.03, 15:59