Zeichenkette nach bestimmten Zeichen durchsuchen und dann ersetzen
-
Hey Leute, wie durchsuche ich denn einen String nach einem bestimmten Zeichen und wie ersetz ich das Zeichen durch ein neues?
Das habe ich bis jetzt, aber da ersetzt er alles.
int main(int argc, char **argv) { char inputstring[500]; printf("Eingabe: "); scanf("%s", inputstring); printf("Eingabe war: %s\n", inputstring); int i; int len = sizeof(inputstring); for (i = 0; i < len; i++) { if(strchr(&inputstring[i], '(') || strchr(&inputstring[i], ')' )) { inputstring[i] = 'H'; } } printf("Neues Wort: %s\n", inputstring); return 0; }
-
Wenn du mit for schon zeichenweise durch den String läufst, brauchst du nicht nochmal extra strchr bemühen. Statt sizeof reicht hier auch strlen.
-
-
Wenn ich richtig verstehe, was du vorhast:
char *p; for(p = strpbrk(inputstring, "()"); p != NULL; p = strpbrk(p, "()")) { *p = 'H'; }
-
Oder die einfache Version:
int i; for (i = 0; inputstring[i] != 0; i++) { if( (inputstring[i] == '(') || (inputstring[i] == ')' )) { inputstring[i] = 'H'; } } printf("Neues Wort: %s\n", inputstring);