+ -
当前位置:首页 → 问答吧 → 求助!自定义一个字符串比较函数,自定义的字符串比较函数,不分大小写,一律转换成小写后再比较

求助!自定义一个字符串比较函数,自定义的字符串比较函数,不分大小写,一律转换成小写后再比较

时间:2011-12-07

来源:互联网

RT, 就是实现stricmp的功能
就是填下面这一个
int stricmp(char * str1, char * str2) //自定义的字符串比较函数,不分大小写,一律转换成小写后再比较
{
char t1, t2;
char diff = 'a' - 'A';
int i = 0;

while(str1[i] && str2[i])
{
//写下你的代码
}

if(str1[i] == str2[i]) return 0;
else if(str1[i] == 0) return -1; //str1短,str2长
else if(str2[i] == 0) return 1; //str1长,str2短
}

作者: firefox0704   发布时间: 2011-12-07

C/C++ code

int my_stricmp(const char * str1, const char * str2) //自定义的字符串比较函数,不分大小写,一律转换成小写后再比较
{
    char diff = 'a' - 'A';
    int i = 0;
    
    while(str1[i] && str2[i])
    {
        //写下你的代码
        #define ISALPHA(x) (('a' <= (x) && (x) <= 'z') || ('A' <= (x) && (x) <= 'Z'))
        if (str1[i] != str2[i] && ((!(ISALPHA(str1[i])) || !(ISALPHA(str2[i]))) || ((str1[i] - str2[i] != diff) && (str1[i] - str2[i] != -diff))))
        {
            break;
        }
        ++i;
    }

    if(str1[i] == str2[i])
        return 0;
    else
        return ((unsigned char)str1[i] - (unsigned char)str2[i]) > 0 ? 1 : -1;
}

作者: we_sky2008   发布时间: 2011-12-07