码迷,mamicode.com
首页 > 其他好文 > 详细

自己实现strncasecmp

时间:2020-01-01 09:38:18      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:const   sign   highlight   自己实现   oid   efi   pre   自己   return   

自己实现
int strncasecmp(const char *s1, const char *s2, int n)
{
#define DIFF_VALUE (‘a‘ - ‘A‘)
#define STRNCASECMP_FALSE (‘z‘ - ‘A‘)
    int ch1 = 0;
    int ch2 = 0;
    int index = 0;

    if (NULL == s1 || NULL == s2 || 0 > n) {
        return STRNCASECMP_FALSE;
    }

    if (0 == n) {
        return 0;
    }

    for (index = 0; index < n ; index++)
    {
        if((ch1 = *(unsigned char *)s1++) >= ‘A‘ && (ch1 <= ‘Z‘)) {
            ch1 += DIFF_VALUE;
        }
        if((ch2 = *(unsigned char *)s2++) >= ‘A‘ && (ch2 <= ‘Z‘)) {
            ch2 += DIFF_VALUE;
        }
        //printf("index=%u, ch1=%c, ch2=%c\r\n", index, ch1, ch2);

        if (‘\0‘ == ch1 || ch1 != ch2) {
            break;
        }
    } ;

    return ch1 - ch2;
}

  摘自并整理:http://www.voidcn.com/article/p-acjqpctj-oc.html

自己实现strncasecmp

标签:const   sign   highlight   自己实现   oid   efi   pre   自己   return   

原文地址:https://www.cnblogs.com/LiuYanYGZ/p/12128056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!