[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 🙂


Anmelden zum Antworten