#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;
}
}