各位大虾们,帮我解决一下.小弟刚学C,不懂递归.帮帮我啊!

tanconglove 2006-09-08 09:52:23
用递归编写一个函数reverse(s)函数,把字符串s中的字符,前后颠倒过来。例:12345->54321
...全文
143 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
0黄瓜0 2006-09-08
  • 打赏
  • 举报
回复
#include <stdio.h>
void reverse(char *s,char re[])
{
static int i=0;
if(*s != 0)
{
reverse(s+1,re);

re[i]=*(s);
++i;
}
}
void main()
{
char *s="12345";
char r[100]={0};//字符结束符依赖于事先全部置'\0'
reverse(s,r);
printf("%s\n",r);
}

// {12345参数一层层的传进去
// {2345
// {345
// {45
// {5
// }re[0]=5;//函数一层层的返回来
// }re[1]=4;
// }re[3]=3;
// }re[4]=2;
// }re[5]=1;
kangji 2006-09-08
  • 打赏
  • 举报
回复
void reserve(char* s)
{
char* p = s;
char* q = s;
int i = 0;
int len = strlen(s);
char ch = '\0';
while (*q)
q=q+1;
q--;
while(i<len/2)
{
ch = *p;
*p = *q;
*q = ch;
*p++;
*q--;
i++;
}
}
hailongchang 2006-09-08
  • 打赏
  • 举报
回复
#include<stdio.h>

void reverse(char *p)
{
if(*p != '\0')
{
reverse(p+1);
printf("%c",*p);
}
else
return;

}
int main()
{
char *s = {"1234567890"};
reverse(s);
return 0;
}

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧