c strcmp函数实现代码

int * Mystrcmp(const char * str1, const char *str2)
{
    while (*str1++ == *str2++)
    {
        if (*str1=='\0')
        {
            return 0;
        }
        if (*str1!= *str2)
        {
            if (*str1 > *str2)
            {
                return 1;
            }
            else
            {
                return -1;
            }
        }
    }    
}

这里实现的是微软标准的函数  ansi标准的话要计算字符的ascii码相差值 所以为了可移植性在写代码判断应该是区间判断而不是判断是不是等于-1和1

在ansi 只会返回小于0或者大于0的数   2个标准相等都会返回0

 下面是ansi标准实现

int * Mystrcmp(const char * str1, const char *str2)
{
    while (*str1++ == *str2++)
    {
        if (*str1=='\0')
        {
            return 0;
        }
    }    
    return *str1 - *str2;
}

 

posted @ 2021-04-12 17:34  紅人  阅读(286)  评论(0编辑  收藏  举报