beliebiges Zeichen suchen und ersetzen
-
ich will ja auch keine vorgesetzt lösung
gut funtion aufrufen ist ja nicht so schwer einfach
void ersetze_zeichen(char *s, char alt, char neu);
zwischen den librays und der main und später dann halt die funktion drunter schreiben...
mein problem ist aber eher der pointer der verwendet wird :S
und wie du vllt siest verwende ich den char neu auch nicht wirklich
-
ok jetzt hab ich zu spät den zweiten post gesehn danke
-
void ersetze_zeichen(char *s, char alt, char neu); int main() { char alt[80]; printf("Bitte geben Sie Ihren Satz oder ihr Wort ein:\n"); fgets(alt, 80, stdin); ersetze_zeichen(alt, ' ', '#'); printf("%s\n", alt); system("pause"); return 0; } void ersetze_zeichen(char *s, char alt, char neu) { // TODO: Code einfügen }
Die Änderungen die du in der Funktion machst bleiben auch nach dem Verlassen bestehen, da es sich um einen Zeiger handelt.
-
Peter1923 schrieb:
ok jetzt hab ich zu spät den zweiten post gesehn danke
Die Lösung solltest du aber nicht nehmen. Das war mehr ein Gag. Mach es lieber mit strlen und so selber. Jedes Zeichen durchgehen und wenn es gleich alt ist, dann mach daraus neu.
-
strlen funktioniert leider nicht mehr weil es sich ja jetzt um einen pointer und nicht mehr um einen array handelt..
-
Doch!
-
öklökl schrieb:
void ersetze_zeichen(char *s, char alt, char neu) { if (*s) { *s = *s == alt ? neu : *s; ersetze_zeichen(++s, alt, neu); } }
if( s && *s ) ...
-
@Peter1923
Wenn du den Code nicht verstanden hast, dann solltest du nachfragen.
Wenn du ihn verstanden hast, sollte dir eine Vereinfachung auffallen.
-
Weg mit ihr.
void ersetze_zeichen(char *s, char alt, char neu) { while (*s) { if(*s == alt) *s = neu; ++s; } }
-
void ersetze_zeichen(char *s, char alt, char neu) { while (s && *s) { if(*s == alt) *s = neu; ++s; } }