📅  最后修改于: 2023-12-03 14:44:15.378000             🧑  作者: Mango
在程序中,有时需要比较两个对象是否相等。C/C++提供了memcmp
函数来比较两个内存块的内容是否相等。
int memcmp(const void* ptr1, const void* ptr2, size_t num);
ptr1
:指向要比较的第一个内存块的指针。ptr2
:指向要比较的第二个内存块的指针。num
:要比较的字节数。ptr1
小于ptr2
时,返回负整数。 ptr1
等于ptr2
时,返回0。 ptr1
大于ptr2
时,返回正整数。 #include <stdio.h>
#include <string.h>
int main()
{
char str1[] = "abcd";
char str2[] = "abcd";
char str3[] = "abce";
int cmp1 = memcmp(str1, str2, sizeof(str1));
int cmp2 = memcmp(str1, str3, sizeof(str1));
printf("str1: %s\nstr2: %s\nstr3: %s\n", str1, str2, str3);
printf("memcmp(str1, str2, sizeof(str1)): %d\n", cmp1);
printf("memcmp(str1, str3, sizeof(str1)): %d\n", cmp2);
return 0;
}
输出:
str1: abcd
str2: abcd
str3: abce
memcmp(str1, str2, sizeof(str1)): 0
memcmp(str1, str3, sizeof(str1)): -1
memcmp
函数是比较两个内存块的内容是否相等的常用函数,常用于字符串、数组等对象的比较。特别注意,要比较的字节数num
不能超过内存块的大小,否则函数行为未定义。