memcmp用法&&实现

memcmp用法&&实现 

目录

memcmp用法&&实现 

用法:

实现 :

strcmp &&  memcmp区别


  • 用法:

头文件:<memory.h>或 <string.h>

函数功能:比较内存区域buf1和buf2的前count个字节。该函数是按字节比较的

函数返回值:

        当buf1<buf2时,返回值<0
        当buf1=buf2时,返回值=0
        当buf1>buf2时,返回值>0

函数原型:

int memcmp(const void *str1, const void *str2, size_t n)
  • 实现 :

int My_memcmp(const void *dest,const void *src,size_t n)
    {
        assert(dest!=NULL && src!=NULL && n>0);
        const char *pdest=(char*)dest;
        const char *psrc=(char*)src;
        while(*pdest == *psrc && --n>0)
        {
            pdest++;
            psrc++;
        }
        int a=*pdest-*pstc;
        if(a>0){return 1;}
        else if(a<0){return -1;}
        else{return 0;}
        return a;
        
    }

strcmp &&  memcmp区别 

strcmp比较的字符串,而memcmp比较的是内存块,strcmp需要时刻检查是否遇到了字符串结束的 /0 字符,而memcmp则完全不用担心这个问题,所以memcmp的效率要高于strcmp。


 


 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值