#include <stdio.h>
#include <string.h>
int reverse(char *s)
{
int i,n=strlen(s);
char c;
if(n==0) return;
c=s[0]; //临时保存第一个字符
for(i=0; i<n-1; i++) //字符前移
s[i]=s[i+1];
s[n-1]='\0';
reverse(s);
s[n-1]=c;//将临时保存的第一个字符放在最后
s[n]='\0';
}
int main()
{
char s[]="123456789";
puts(s);
reverse(s);
puts(s);
}
算法分析如下: