关于c语言字符串的一个递归程序

img


运用递归完成

#include<stdio.h>
#include<string.h>
void reverse(char s[]) {
    int len = strlen(s);
    if(len <= 1)    
        return ;
    else {
        char temp = s[0];    
        s[0] = s[len - 1]; 
        s[len - 1] = '\0';    
        reverse(s + 1);
        s[len - 1] = temp;    
    }

}
int main() {
    char s[80];
    scanf("%s", s);
    reverse(s);
    printf("%s", s);
    return 0;
}

原来是要递归啊。英文看不懂

供参考:

void reverse(char s[])
{
    char* p = s, c;
    while (*p) p++;
    p--;          
    if (s < p)
    {
        c = *s;
        *s = *p; 
        *p = '\0'; 
        reverse(s + 1);
        *p = c;   
    }
}