模拟实现strcmp

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

#define _CRT_SECURE_N0_WARNINGS 1
#include 
#include

//字符串比较
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

运行结果:


字符串比较.png

你可能感兴趣的:(模拟实现strcmp)