模拟实现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