| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 18974 人关注过本帖
标题:【问题请教】c语言两个字符串比较大小的问题,不使用strcmp函数
取消只看楼主 加入收藏
星星的故乡
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2013-10-29
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:0 
【问题请教】c语言两个字符串比较大小的问题,不使用strcmp函数
题目:
将两个字符串s1,s2比较,如果s1>s2,输出一个正数;s1<s2输出一个负数,s1=s2,输出0。输出的正数或负数的绝对值应是比较的两个字符串的ASCII码的差值。例如‘A'与'C'的ASCII的差值为2,因此输出为‘-2’,不能使用strcmp函数。
程序代码:
int main()
{
        char str1[80],str2[80];
        int i=0,r;
        puts("input string1:");
        gets(str1);
        puts("input string2:");
        gets(str2);
       
        while((str1[i]==str2[i])&&(str1[i]!='\0')) //如果两个对应字符相等,且两字符串都没有结束,则i++,继续判断下一个字符;
                                                   //否则,只要两个字符不相等,或者任意字符串已经结束,则不再进行下一个字符的判断。
        {
            i++;      
        }
        if(str1[i]=='\0'&&str2[i]=='\0')    //如果同时结束,则相等
        {
            r=0;
        }
        else
        {
            r=str1[i]-str2[i];
        }
        printf("result:%d.\n",r);

    return 0;
}

疑问
while((str1[i]==str2[i])&&(str1[i]!='\0'))
我理解必须加上红色字体来判断字符串是否已经结束,但是这里为什么写的是str1,而不是str2呢?谢谢。
搜索更多相关主题的帖子: 字符串 绝对值 c语言 
2013-11-24 12:19
快速回复:【问题请教】c语言两个字符串比较大小的问题,不使用strcmp函数
数据加载中...
 
   



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

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