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

void Reverse(char* str, int len) {
    int i, t;
    if (len == 1)
        return ;
    t = str[0];
    for (i = 0; i < len - 1; i++)
        str[i] = str[i + 1];
    str[len - 1] = t;   //最后一位给str[0];
    Reverse(str, len - 1);
}


int main() {
    char* str = (char*)malloc(1000 * sizeof(char));
    scanf("%s", str);
    int len = strlen(str);
    Reverse(str, len);
    puts(str);
    free(str);
}

数组的逆序:

void Reverse(char* str, int len) {

int i, t;

if (len == 1)

return ;

t = str[0];

for (i = 0; i < len - 1; i++)

str[i] = str[i + 1];

str[len - 1] = t; //最后一位给str[0];

Reverse(str, len - 1);

}