| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 678 人关注过本帖
标题:这段代码看不懂!!
只看楼主 加入收藏
weilight2008
Rank: 1
等 级:新手上路
帖 子:111
专家分:4
注 册:2005-10-5
结帖率:50%
收藏
 问题点数:0 回复次数:8 
这段代码看不懂!!

请问各位大虾,下面的代码是实现什么功能的?特别是while(*a&&*b&&(*a==*b))是什么意思啊?

#include <iostream> int stringcmp(char *a,char *b)

{

while(*a&&*b&&(*a==*b))

{

a++;b++;

}

return((*a-*b)==0? 0 : ((*a-*b)>0? 1 : -1) );

}

int main() { char a[20]; char b[20]; std::cin >> a >> b; int i = stringcmp(a,b); std::cout << i << std::endl; return 0; }

搜索更多相关主题的帖子: 代码 
2005-10-09 21:31
zorro2zzz
Rank: 1
等 级:新手上路
威 望:1
帖 子:96
专家分:0
注 册:2005-9-11
收藏
得分:0 
俺也是初学,只能说说吧…… 这个是用来比较两个字符串的…… #include <iostream> int stringcmp(char *a,char *b)

{

while(*a&&*b&&(*a==*b)) //指针a和b都取到字符且是相等字符

{

a++;b++;

}

return((*a-*b)==0? 0 : ((*a-*b)>0? 1 : -1) ); //当a与b相等返回0,大于返回1,小于返回-1

}

int main() { char a[20]; char b[20]; std::cin >> a >> b; int i = stringcmp(a,b); std::cout << i << std::endl; return 0; } 不足之处,多多指教……


编程是啥东西,让俺瞧瞧……
2005-10-09 22:14
olivezhang
Rank: 1
等 级:新手上路
帖 子:223
专家分:0
注 册:2005-9-14
收藏
得分:0 
while(*a&amp;&amp;*b&amp;&amp;(*a==*b)) 我想这样会好些:
while((*a)&amp;&amp;(*b)&amp;&amp;  (*a==*b))

谷底深深行 ,峰顶漫漫步......@_@
2005-10-10 13:14
Staples
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-8-13
收藏
得分:0 
没错,就是这个意思了!
2005-10-10 22:20
trackjay
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2005-10-6
收藏
得分:0 
主函数就是输入两个字符串,然后调用strcmp进行比较。如果相等则输出0,大于输出1,否则输出-1。strcmp上面解释得很清楚了。

I still have lots more to work on.
2005-10-10 22:50
aolong
Rank: 1
等 级:新手上路
帖 子:248
专家分:0
注 册:2005-10-11
收藏
得分:0 
回复:(zorro2zzz)俺也是初学,只能说说吧……这个...
while(*a&amp;&amp;*b&amp;&amp;(*a==*b))的意思就是指针a和b都不为空(即所指向的地址中存放有值),且两个指针指向同一个地址

奋斗之中,朦胧有你,一切已变的那么飘渺虚无...
2005-10-11 23:24
wangrong03
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2005-10-14
收藏
得分:0 
新手还需要勤加学习!

2005-10-14 13:15
vblue130
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2005-9-20
收藏
得分:0 
加个括号好点

天空不留下鸟的痕迹,但我已飞过.
2005-10-22 22:33
lzmol
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-10-23
收藏
得分:0 
while(*a&amp;&amp;*b&amp;&amp;(*a==*b))这个地方看看 运算符的 优先级和结合律 就能明白:
   *(取内容)比&amp;&amp;高很多所以*a先结合,*b同理。
整体的意思就是指针a和b的内容都不为'\0',且指针a和指针b指向的内容相等!

2005-10-23 10:23
快速回复:这段代码看不懂!!
数据加载中...
 
   



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

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