| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 431 人关注过本帖
标题:[求助]这个程序有什么问题?
只看楼主 加入收藏
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
收藏
 问题点数:0 回复次数:3 
[求助]这个程序有什么问题?
#include<stdio.h>
#include<string.h>
void change(char *s);
int main(void)
{
char s[80];
puts("text:");
gets(s);
change(s);
puts(s);
getchar();
return 0;
}
void change(char *s)
{
char temp;
int i=strlen(s),n;
for(n=0;i!=n;i--,n++)
{
temp=s[i];
s[i]=s[n];
s[n]=temp;
}
return;
}

这是段将字符串中的字符顺序颠倒的代码,可以运行,但总是莫名其妙退出,是不是for循环的指针的问题?
这个程序有没有更好的代码?
谢谢。
搜索更多相关主题的帖子: include change return 字符串 
2006-11-14 11:31
yangnihaoma1
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-11-14
收藏
得分:0 
i!=n   不对,当字符有偶数时!
2006-11-14 19:22
jiangzw625
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2006-3-27
收藏
得分:0 

当然不行了。你要这么做把'\0'放在最前面,什么都不会显示的。
应该这样改。
void change(char *s)
{
char temp;
int i=strlen(s)-1,n;
for(n=0;i!=n&&i-n!=1;i--,n++)
{
temp=s[i];
s[i]=s[n];
s[n]=temp;
}
return;
}


马马乎乎
2006-11-14 22:05
zz578
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2006-7-31
收藏
得分:0 
谢了

MSN:mr_zz@
QQ:284913258
计算机及应用专业
2006-11-15 20:06
快速回复:[求助]这个程序有什么问题?
数据加载中...
 
   



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

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