String Suche + Ersetzen



  • Hi Leute,

    ich kriegs einfach nicht gebacken eine Funktion zu schreiben die wie folgt aussehen soll:

    int SuchenErsetzen(char*Text, char*Searchstring, char*Replstring, int Sstrlen, int Replstrlen)

    die den String Text nach dem String Searchstring durchsuchen und durch Replstring ersetzen soll.
    Weil Search und Replace Strings unterschiedliche Länge haben können wird auch die Länge der Strings mitgegeben.

    Ich bekomme einfach keinen passenden Algorithmus für die Suche und keine gute Ersetzungsroutine hin.
    Deswege hab ich mich gefragt ob mir hier jemand helfen könnte.

    mfg
    Moritz



  • Text Zeichen für Zeichen kopieren, und dabei mit strncmp() prüfen.

    Ich versuch mal

    char text[] = "Hallo Welt";
    char ziel[100] = {0};
    
    for(char *pt = text, *pz = ziel; *pt!=0; ++pt)
      if(strncmp(pt,"Welt",strlen("Welt")) == 0) {
        strcat(pz, "Neuer Text");
        pz += strlen("Neuer Text");
      } else {
        *pz = *pt;
        ++pz;
      }
    

    Ist nicht getestet, aber so ungefähr sollte es gehen. Etwas problematisch ist, die Größe vom neuen Text zu bestimmen.

    Wenn du dir das ersparen willst, könntest du die C++-Variante aus der FAQ nehmen.


Anmelden zum Antworten