[erledigt] Funktion zum Umdrehen eines Strings funzt nicht
-
Huhu,
ich versuche gerade eine Funktion zu schreiben, die einen String umdreht... dann wird aus Hallo z.B. ollaH. Ich scheine irgendeinen Fehler in Zeile 34 zu machen... ich habe etliche Varianten ausprobiert, aber es wird entweder nichts ausgegeben oder die Zeichenkette + seltsame ASCII Zeichen... vielleicht sieht ja einer von euch woran es hängt:
// KL SS04 A1 #include <stdio.h> #include <stdlib.h> char *reverse (char *str); //main int main (void) { char *string_umgedreht; char string[] = {"Hallo"}; string_umgedreht = reverse(string); printf("%s", string_umgedreht); getchar(); return 0; } //Funktion Buchstaben umdrehen char * reverse (char *str) { int i = 0; int laenge = strlen(str); char *heap; // Speicher allozieren heap = (char *) malloc (laenge * sizeof(char)); for(i = 0; i < laenge; i++) { // hier müsste das Problem liegen heap[i] = str[laenge-i]; } return heap; }
Viele Grüße
Haimi
-
Du musst das letzte Zeichen deines Strings auf 0 setzen.
-
ahhh
super... vielen Dank!
mit:
heap[i] = str[laenge-(i+1)];funktioniert es... wunderbar