int memcmp(const void *buf1, const void *buf2, unsigned int count);
比较内存区域buf1和buf2的前count个字节。
头文件
#include <string.h>或#include<memory.h>
返回值
当buf1<buf2时,返回值<0
当buf1=buf2时,返回值=0
当buf1>buf2时,返回值>0
所以该函数的功能实现为:
<span style="font-size:18px;">#include<stdio.h> #include<assert.h> int my_memcmp(char *str1,char *str2,int len) { assert(str1); assert(str2); while(len--) { while(*str1==*str2) { if(*str1=='\0') return 0; str1++; str2++; } } if(*str1>*str2) return 1; if(*str1<*str2) return -1; } int main() { char *p="adcc"; char *q="bac"; printf("%d\n",my_memcmp(p,q,1)); return 0; }</span>
运行结果如图所示: