Umkehr-Array in C?

Hi ich versucht zu implementieren, die eine reverse-array-code, aber es scheint nicht zu funktionieren und ich bin wirklich nicht sicher, warum. Die For-Schleife einfach nicht zu funktionieren scheint. Ich weiß nicht, warum, weil die Logik scheint ganz richtig zu mir.

#include <stdio.h>
#include <string.h>

void reverse(char, int);

int main()
{
    char a[100];
    gets(a);

    reverse(a, strlen(a)-1);

    printf("%s\n",a);
    getchar();
    getchar();
    getchar();
    return 0;
}

void reverse(char ar[], int n)
{
    char c;
    int i = 0;
    printf("n = %d" , n);
    for ( i = 0; i >= n ; i++){
        c = ar[i];
        ar[i] = ar[n];
        ar[n] = c;
        printf("Processed");
        n--;}

}


/*
if (begin >= n)
return;

c          = *(x+begin);
*(x+begin) = *(x+n);
*(x+n)   = c;
offs = x++;
printf("Begin = %d   ,  n = %d, offs = %p  \n", begin, n, offs);
reverse(x, ++begin, --n); */
Möchten Sie vielleicht damit anfangen, indem Sie Ihren Prototypen entsprechend Ihrer tatsächlichen Funktion.
vielleicht sollte i<=n ?!
Unten gibt es einen auskommentierten code, der funktioniert, wenn ich den pass 3 Parameter durch, aber ich wünschte, es zu begrenzen, sich einfach nur die 2 Parameter, dem string und seine Länge
Oh hasanovh Dank!
Aus Neugier nur, warum sogar übergeben Sie die Länge. Sind Sie Vergegenwärtigung der Aufruf dieser nur auf eine Zeichenfolge? Oder ist das strlen() aus reverse() einfach nicht in der wheelhouse dieser Aufgabe?

InformationsquelleAutor JoC | 2013-10-11

Schreibe einen Kommentar