034
26.04.2004, 11:38 Uhr
~Piet
Gast
|
Zitat: |
Pablo postete
@Pablo
C++: |
char* ersetzen(const char* suche, const char* neu, const char* inp, char* buffer) { char* ptr; if (!suche || !neu || !inp || !buffer) return buffer=NULL; ptr=strstr(inp, suche); if(!ptr) { strcpy(buffer, inp); return buffer; }
*buffer=0; if (ptr!=inp) { strncpy(buffer, inp, ptr-inp); buffer[ptr-inp]=0; // damit ich strcat benuzten kann } strcat(buffer, neu); ptr+=strlen(suche); strcat(buffer, ptr); return buffer; }
|
Ok, die Benuztung....
C++: |
char tmp[1000]; ... ersetze("ishst", "ist", "Das ishst ein Test", tmp); printf("%s\n", tmp);
|
Sollte "Das ist ein Test" ausgeben. ich überprüfe, ob ich Fehler hab. so on the fly weiss man nie.
|
@Pablo: Soweit funzt es gut, aber wie kann ich noch mit einbauen, dass wenn mehrere Suchstrings drin sind, wirklich alle ersetzt werden? Im Moment wird lediglich der erste ersetzt. Und noch ne Frage: Wie kann ich den zu ersetzenden String noch ein Pipe anhängen? (z.B. 'sfassda' soll duch 'ist|' ersetzt werden...) Immer wenn ich bisher noch ein | ran gehangen habe, dann ist das Programm abgestürzt... |