Umkehren einer Zeichenfolge mithilfe einer rekursiven Funktion

Ich Lerne im Moment C und ich kann nicht vorbei an dieser übung. Ich muss eine rekursive Funktion umkehren string1 in string2. Hier ist mein code. Ich würde gerne Ihre Hilfe schätzen.

#include <stdio.h>
#define MAX 100

void reverse(char s1[],char s2[],int n,int j);

int main()
{
    char string1[MAX]="How Are You Mate";
    char string2[MAX]="";
    int n=0;
    int i=0;
    int j=0;

    for(i=0;string1[i]!='\0';i++)
        n++;
    reverse(string1,string2,n,j);
    printf("String-a normal:\n%s\n",string1);
    printf("String-a reverse:\n%s\n",string2);
    return 0;
}

void reverse(char s1[],char s2[],int n,int j)
{
     if(n>0)
     {
            s2[j]=s1[n];
            reverse(s1,s2,n-1,j+1);
     }
     else
            s2[j]='\0';
}
was ist s2[]?
Der code wird kompiliert in Ordnung,das problem ist, es doesnt-show-Zeichen, wenn ich drucken Sie die 2.saite.
s2[] steht für den zweiten string
macht die übung nennen, nutzen Sie gewinnen konnte, die aus der Verwendung einer rekursiven Funktion zum umkehren eines Strings in C, dessen "Saiten" können nicht einfach zurückgebracht werden und daher nicht passen, die Muster sehr gut?
Es sagt das gleiche wie du gesagt hast.Mit einer rekursiven Funktion nicht machen ein Programm schneller,aber immer noch fordert es eine übung mit einer rekursiven Funktion.Ich kann nicht bewegen, ohne lösen dieser Aufgabe.

InformationsquelleAutor Lind | 2013-03-10

Schreibe einen Kommentar