编写递归函数,将输入的字符串按与输入相反的顺序输出

2025-03-10 16:05:03
推荐回答(2个)
回答1:

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

}

该注释的都注释了,不难理解,自己看吧。。。

回答2:

int reverse(char *str)
{
if('\0' == *str )
return 0;
reverse(str+1);
printf("%c", *str);
}