| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 492 人关注过本帖
标题:字符串对比类问题求解
只看楼主 加入收藏
infei2006
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-8-22
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:5 
字符串对比类问题求解
#include
main()
{
   int i,r;
   char s[80]="bus";
   char b[80]="book";
   for(i=r=0;s[i]!='\0'&&b[i]!='\0';i++)
     if(s[i] ==b[i]) i++;
   else
    {
      r=s[i]-b[i];
      break;
     }
    printf("%d",r);
}
我的理解是:将第一次不同的s[i]和b[i]所代表字母的ASCII码相减输出r,u的ASCII码是85,o的是79,r应该是6,为什么结果是4?

搜索更多相关主题的帖子: 字符串 字母 
2014-08-23 10:21
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:4 
说明break只退出了if呗,试试's'-'o',呵呵

梦想拥有一台龙芯3A-4000
2014-08-23 10:52
x741945033
Rank: 1
等 级:等待验证会员
帖 子:4
专家分:5
注 册:2014-8-23
收藏
得分:4 
少了一对括号
导致for循环结束了才会执行else语句
所以你比较的是O和S的ASCII码的差值
2014-08-23 10:57
infei2006
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-8-22
收藏
得分:0 
回复 3 楼 x741945033
有少括号吗,用TC输出就是4啊。我是看不明白过程
2014-08-23 11:13
infei2006
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-8-22
收藏
得分:0 
回复 2 楼 ditg
if后面那个i++漏了 懂了
2014-08-23 11:27
Frangmuler
Rank: 2
等 级:论坛游民
帖 子:12
专家分:21
注 册:2013-4-5
收藏
得分:4 
if后面的i++是多余的。按你这个程序下去,程序是这样的检测的:a[0]=b[0]---->然后直接检查a[2]和b[2]。
2014-08-23 12:48
快速回复:字符串对比类问题求解
数据加载中...
 
   



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

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