Woeter umdrehen?
-
Hallo!
Ich hab folgenden Funktion geschrieben:
char* reverse(char *string) { int anz = 0; int count = 0; char *string_new = NULL; while(string[count]!= '\0') count++; string_new = realloc(string_new,(count+1)*sizeof(char*)); if(!string_new) return NULL; while(count != 0) string_new[anz++] = string[count--]; string_new[++anz]= '\0'; printf("%c",string_new); return string_new; }
Sie soll die Buchstaben umdrehen also aus ABC wird CBA. Aber läuft funktioniert die Zeile:
string_new[anz++] = string[count--];
nicht!
Was ist hier der Fehler?
mfg
-
Bei gehört printf("%s") für die ausgabe des strings hat aber nichts geändert!
-
Habs schon:
while(count != 0) string_new[anz++] = string[(count--)-1];
Hab mich um eins verzählt!
-
co6er schrieb:
Hab mich um eins verzählt!
hehe, der übliche off-by-one fehler. da musste echt aufpassen. keine noch so tolle programmiersprache, mit arrays und/oder pointern, kann dich davor bewahren.
-
hehe, der übliche off-by-one fehler.
Einer meiner früheren Lehrer hat uns immer die Hand vor
die Nase gehalten und gesagt: "5 Finger - 4 Zwischenräume".
Und der hatte gar nichts mit EDV zu tun!
-
flamer schrieb:
hehe, der übliche off-by-one fehler.
Einer meiner früheren Lehrer hat uns immer die Hand vor
die Nase gehalten und gesagt: "5 Finger - 4 Zwischenräume".
Und der hatte gar nichts mit EDV zu tun!hätte er was mit C zu tun, dann hätte er gesagt: '4 finger, 3 zwischenräume'
-
Oder mit dem Sägewerk...