C函数库中的memcmp实现
来源:互联网 发布:淘宝违规词在线查询 编辑:程序博客网 时间:2024/06/07 16:48
/**copyright@nciaebupt 转载请注明出处*原型:int memcmp(const void *buf1, const void *buf2, size_t count);*用法:#include <string.h>*功能:比较内存区域buf1和buf2的前count个字节。*说明:* 当buf1<buf2时,返回值<0* 当buf1=buf2时,返回值=0* 当buf1>buf2时,返回值>0*使用C函数库中的memcmp*/#include <cstdio>#include <cstring>int main(int args,char ** argv){ char str1[] = "Hello World!"; char str2[] = "Hello world!"; int flag = memcmp(str1,str2,sizeof(str1)); if(flag < 0) printf("%s is less than %s\n",str1,str2); else if(flag == 0) printf("%s is equal %s",str1,str2); else printf("%s is larger than %s",str1,str2); getchar(); return 0;}/**copyright@nciaebupt 转载请注明出处*原型:int memcmp(const void *buf1, const void *buf2, size_t count);*用法:#include <string.h>*功能:比较内存区域buf1和buf2的前count个字节。*说明:* 当buf1<buf2时,返回值<0* 当buf1=buf2时,返回值=0* 当buf1>buf2时,返回值>0*自己实现memcmp*/#include <cstdio>int _memcmp(const void * buf1,const void * buf2,size_t count){ if(!count) return 0; while(count-- && *((char *)buf1) == *((char *)buf2)) { buf1 = (char *)buf1 + 1; buf2 = (char *)buf2 + 1; } return (*((char *)buf1)-*((char *)buf2));}int main(int args,char ** argv){ char str1[] = "Hello World!"; char str2[] = "Hello world!"; int flag = _memcmp(str1,str2,sizeof(str1)); if(flag < 0) printf("%s is less than %s\n",str1,str2); else if(flag == 0) printf("%s is equal %s",str1,str2); else printf("%s is larger than %s",str1,str2); getchar(); return 0;}