#include
#include
void reverse(char *s)
{
char temp;
int len = strlen(s);
if(len > 1)
{
temp = s[0];
s[0] = s[len - 1];
s[len - 1] = '\0'; //为下一次递归填充一个字符串尾
reverse(s+1);
s[len - 1] = temp; //还原本次递归的最后一个字符
}
}
int main()
{
char s[] = "Hello!";
reverse(s);
std::cout << s;
return 0;
}
该注释的都注释了,不难理解,自己看吧。。。
int reverse(char *str)
{
if('\0' == *str )
return 0;
reverse(str+1);
printf("%c", *str);
}