int memcmp(const void *s1, const void *s2, size_t n);
//内存区域s1和s2前n个字节(每个字节解释为无符号字符)进行比较。
/*
如果返回值小于0 ,则表示s1小于s2
如果返回值大于0,则表示s1大于s2
如果返回值等于0.则表示s1等于s2
*/
例子:
#include <stdio.h>
#include <string.h>
// int memcmp(const void *s1, const void *s2, size_t n);
int main(void)
{
char *p = "223456";
char *p1 ="523456";
int a=0;
a=memcmp(p,p1,2);
printf("a = %d\n",a);
return 0;
}
mymemcmy实现:
int mymemcmp(const void *s1,const void *s2,size_t n)
{
int a = 0;
char *p1 =(char *)s1;
char *p2 =(char *)s2;
while(n>0)
{
if (*p1>*p2)
{
a =1;
break;
}
else if (*p1 < *p2)
{
a =-1;
break;
}
else
{
if(1==n)
{
a=0;
break;
}
n--;
*p1++;
*p2++;
}
}
return a;
}