标题:这是一个比较字符串大小的函数,不知道为什么返回值输不出来
只看楼主
闪光点覅给
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-10-19
结帖率:0
 问题点数:0 回复次数:4 
这是一个比较字符串大小的函数,不知道为什么返回值输不出来
int compare(char s1[], char s2[]){
        for(int i=0;s1[i]!='/0';i++)
        {
            if(s1[i]>'A'&&s1[i]<'Z')
                s1[i]=s1[i]-'A'+'a';
        }
        for(i=0;s2[i]!='/0';i++)
        {
            if(s2[i]>'A'&&s2[i]<'Z')
                s2[i]=s2[i]-'A'+'a';
        }
        for(i=0;s1[i]!='\0'&&s2[i]!='\0';i++){
            if(s1[i]>s2[i])
                return 1;
            else if(s1[i]<s2[i])
                return -1;
            else
                continue;
        }
        if(s1[i]=='\0'&&s2[i]=='\0')
            return 0;
        else if(s1[i]!='\0'&&s2[i]=='\0')
            return 1;
        else
            return -1;
}
2015-10-19 17:04
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:0 
for(int i=0;s1[i]!='/0';i++)
        {
            if(s1[i]>'A'&&s1[i]<'Z')
                s1[i]=s1[i]-'A'+'a';
        }
        for(i=0;s2[i]!='/0';i++)
        {
            if(s2[i]>'A'&&s2[i]<'Z')
                s2[i]=s2[i]-'A'+'a';

剑栈风樯各苦辛,别时冰雪到时春
2015-10-19 18:56
醒山
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:9
帖 子:463
专家分:2071
注 册:2015-5-25
得分:0 
你是什么意思啊输不出来?
2015-10-19 20:08
农民工
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:109
专家分:639
注 册:2015-8-22
得分:0 
'\0' != '/0 '
2015-10-20 09:11
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
这是一个比较字符串大小的函数
--- 应该是:这是一个不区分字母大小写的比较字符串大小的函数

错误的原因2楼林月儿已经说了,我想说的是你代码为什么要搞得这么复杂
难道不应该是简单的
int strcmp( const char* s1, const char* s2 )
{
    for( ; *s1 && tolower(*s1)==tolower(*s2); ++s1,++s2 );
    return *s1-*s2;
}
以上代码我随手这么一写,没检查,更没测试,只是一个示意而已。
2015-10-20 09:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-458330-1-1.html




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

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