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

 我来答
吸一口尼古丁
2011-06-09 · TA获得超过2399个赞
知道小有建树答主
回答量:603
采纳率:0%
帮助的人:958万
展开全部

#include <iostream>

#include <string.h>

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; 

}

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

memberwin
2011-06-09 · TA获得超过3904个赞
知道大有可为答主
回答量:1000
采纳率:100%
帮助的人:537万
展开全部
int reverse(char *str)
{
if('\0' == *str )
return 0;
reverse(str+1);
printf("%c", *str);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zouwei44844
2011-06-09 · 超过17用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:52.4万
展开全部
#include <stdio.h>
void trans(char *p)
{
if(*p != '\0')
trans(p+1);
printf("%c",*(p-1));
}

int main(void)
{
char a[20];
char *p;
p = a;
printf("please input the string:\n");
scanf("%s",p);
trans(p);

return 0;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式