模拟实现strcmp

作者: 修夏之夏i | 来源:发表于2018-05-11 08:41 被阅读0次

    strcmp:
    两个字符串按字符逐个比较,若在相同位置的两个字符的ASCII值不等,则比较完成。

    #define _CRT_SECURE_N0_WARNINGS 1
    #include <stdio.h>
    #include<assert.h>
    
    //字符串比较
    int my_strcmp(const char* str1, const char* str2)
    {
        assert(str1 != NULL);
        assert(str2 != NULL);
    
        while (*str1 == *str2)
        {
            if (*str1 == '\0')
                return 0;
            str1++;
            str2++;
        }
        //vs编译器下的返回
        /*if (*str1 > *str2)      
            return 1;
        else
            return -1;*/
    
       //标准返回
        return *str1 - *str2; 
    }
    
    int main()
    {
        char *p = "abcdef";
        char *q = "aqaaaaaaaaaa";
        //printf("%d\n",my_strcmp(p,q));
        int ret = my_strcmp(p, q);
        if (ret > 0)
            printf("p>q\n");
        else if (ret == 0)
            printf("p=q\n");
        else
            printf("p<q\n");
        return 0;
    }
    
    

    运行结果:


    字符串比较.png

    相关文章

      网友评论

        本文标题:模拟实现strcmp

        本文链接:https://www.haomeiwen.com/subject/tgvxdftx.html