首页 > 其他 > 详细

自己实现strncasecmp

时间:2020-01-01 10:50:39      阅读:112      评论:0      收藏:0      [点我收藏+]
自己实现
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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!