供参考,指针写法:
#include<stdio.h>
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;
}
}
int main()
{
char s[100];
gets(s);
reverse(s);
puts(s);
return 0;
}
数组写法:
#include<stdio.h>
void reverse(char s[])
{
int len = strlen(s);
if(len <= 1)
return ;
else {
char tmp = s[0];
s[0] = s[len - 1];
s[len - 1] = '\0';
reverse(s + 1);
s[len - 1] = tmp;
}
}
int main()
{
char s[100];
gets(s);
reverse(s);
puts(s);
return 0;
}