| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1183 人关注过本帖
标题:[求助]如何实现字符串反序
只看楼主 加入收藏
jingjingyls
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-8-12
收藏
 问题点数:0 回复次数:12 
[求助]如何实现字符串反序
不使用strrev函数,最好设计一个函数递归!
搜索更多相关主题的帖子: 字符 
2007-09-04 10:35
jingjingyls
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-8-12
收藏
得分:0 
怎么没人回复啊!在线等!

2007-09-04 13:18
cyhbp
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-8-27
收藏
得分:0 

#include <stdio.h>
void main()
{
int i,j=0;
char a[100],c;
char b;
printf("请输入一个字符串:");
gets(a);
c=strlen(a)-1 ;
for (i=c;i>=c/2+1;i--)
{
b=a[i];
a[i]=a[j];
a[j]=b;
j++;

}

printf("%s",a);
getch();

}


递归?没必要吧,我也不会。


2007-09-04 18:39
blackkey
Rank: 1
等 级:新手上路
帖 子:159
专家分:0
注 册:2005-6-8
收藏
得分:0 

用一个函数 就可以实现拉 ·~

没必要用 函数递归


2007-09-04 18:41
jingjingyls
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-8-12
收藏
得分:0 
用一个函数,将头尾交换,然后将第二个和倒数第二个交换!这样我会!
我的思路是这样的:先将字符串看作两部分,第一个字符和后面的字符,先将这两部分交换!对于后面的部分调用此函数递归,直到只有两个字符时直接交换!举例:abcd-bcda-cdba-dcba,此过程用一个函数递归实现!

2007-09-04 19:41
similie
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-9-4
收藏
得分:0 
#include <stdio.h>
void main()
{
int i,j,k;
char a[100],b[100];
printf(" \nplease input :");
gets(a);
k=strlen(a)-1;
i=k;j=0;
while(j<=k)
{
b[j]=a[i];
i--;
j++;
}
printf("\n%s",b);
}
2007-09-04 20:26
雨中飞燕
Rank: 3Rank: 3
等 级:禁止访问
威 望:8
帖 子:2200
专家分:0
注 册:2007-8-9
收藏
得分:0 
要学简单的递归的话给你提供一篇文章,我原创的
http://yzfy.org/bbs/viewthread.php?tid=298




by 雨中飞燕 QQ:78803110 QQ讨论群:5305909

[url=http://bbs.bc-cn.net/viewthread.php?tid=163571]请大家不要用TC来学习C语言,点击此处查看原因[/url]
C/C++算法习题(OnlineJudge):[url]http://yzfy.org/[/url]
2007-09-04 20:33
similie
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-9-4
收藏
得分:0 
我按照作者的设想做了一个递归的,不过还是出错了,我想了老长时间也没有弄明白究境是怎么回事.帮忙看看.
#include <stdio.h>
void convert(int i,int j,char a[100]){
char b;
if(i<j)
{
b=a[i];
a[i]=a[j];
a[j]=b;
convert(i+1,j-1,a[100]);
}
}
void main()
{
int k;
char c[100];
printf("\nplease input:");
gets(c);
k=strlen(c)-1;
convert(0,k,c[k]);
printf("\n%s",c);
}

[此贴子已经被作者于2007-9-4 22:23:42编辑过]

2007-09-04 22:13
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 

#include <stdio.h>
#include <string.h>
void Reverse(char *str, int len){
if(str + len == str){
putchar(*str);
return ;
}
else{
putchar(*(str + len));
Reverse(str, len-1);

}

}

int main(void){
char str[100];
while(NULL != gets(str) && '\0' != *str)
Reverse(str, strlen(str) - 1);
return 0;
}


由于工作,N久都没来了!
2007-09-04 23:31
jingjingyls
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-8-12
收藏
得分:0 
9楼只是反序输出了,但原字符串中还是顺序存放!最好能反序存放!

2007-09-05 10:27
快速回复:[求助]如何实现字符串反序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016334 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved