| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2630 人关注过本帖
标题:字符串倒置问题.
只看楼主 加入收藏
dousao
Rank: 2
等 级:论坛游民
帖 子:228
专家分:58
注 册:2007-11-8
结帖率:75%
收藏
 问题点数:0 回复次数:7 
字符串倒置问题.
#include "stdio.h"
#include "string.h"
#define N 5
void fun(char *s)
{
 int i;
 int t;
 int n=strlen(s);
 for(i=0;i<=(n-1)/2;i++)
 {
  t=*(s+i);*(s+i)=*(s+n-i-1);*s(s+n-i-1)=t;
 }
}
main()
{
 char a[N];
 int i;
 gets(a);
 fun(a);
 puts(a);
}
//这是我自己写的代码,编译不通过,不知道哪里错了呢?
搜索更多相关主题的帖子: 字符 int 倒置 include void 
2007-11-24 09:39
Karl168
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-9-23
收藏
得分:0 
兄弟,你多了一个S。以下是我改好的程式,已运行OK。
#include "stdio.h"
#include "string.h"
#define N 5
void fun(char *s)
{
int i;
int t;
int n=strlen(s);
for(i=0;i<=(n-1)/2;i++)
{
  t=*(s+i);*(s+i)=*(s+n-i-1);*(s+n-i-1)=t;
}
}
main()
{
char a[N];
int i;
gets(a);
fun(a);
puts(a);
}
2007-11-24 10:13
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
t=*(s+i);*(s+i)=*(s+n-i-1);*s(s+n-i-1)=t;
你把上面三句改成如下试试:
t=s[i]; s[i]=s[n-i-1]; s[n-i-1]=t;

[ 本帖最后由 静思 于 2007-11-24 10:19 编辑 ]

英者自知,雄者自胜
2007-11-24 10:17
dousao
Rank: 2
等 级:论坛游民
帖 子:228
专家分:58
注 册:2007-11-8
收藏
得分:0 
t=s; s=s[n-i-1]; s[n-i-1]=t;   ?
这个可以么?函数传回不了值了吧?这只是交换的地址,没有交换实参指向的元素吧.而且t=s的话那么循环也起不到作用了.
确实是多了一个s ...哈哈.:)
2007-11-24 10:29
dousao
Rank: 2
等 级:论坛游民
帖 子:228
专家分:58
注 册:2007-11-8
收藏
得分:0 
有一个好的讨论论坛真好!:)
比老师强多了.
2007-11-24 10:30
chump345
Rank: 1
来 自:家里蹲大学
等 级:新手上路
帖 子:108
专家分:5
注 册:2007-11-24
收藏
得分:0 
老师有老师的作用~论坛有论坛的好处~

凤凰涅磐,浴火重生!

2007-11-25 00:48
learnerboy
Rank: 2
等 级:论坛游民
帖 子:246
专家分:22
注 册:2007-11-11
收藏
得分:0 
同意楼上的!
2007-11-25 01:13
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
t=*(s+i);*(s+i)=*(s+n-i-1);*s(s+n-i-1)=t; 句多了个S
2007-11-25 02:35
快速回复:字符串倒置问题.
数据加载中...
 
   



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

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