memcmp函数是C语言中的库函数,用于比较两个内存块的内容。
该函数的原型如下:
int memcmp(const void* ptr1, const void* ptr2, size_t num);
其中,ptr1
和ptr2
是要比较的内存块的起始地址,num
是要比较的字节数。
函数返回值有三种情况:
-
如果
ptr1
和ptr2
指向的内存块内容相等,则返回0; -
如果
ptr1
指向的内存块内容大于ptr2
指向的内存块内容,则返回一个正数; -
如果
ptr1
指向的内存块内容小于ptr2
指向的内存块内容,则返回一个负数。
以下是一个使用memcmp
函数的例子:
#include#include int main() { char str1[] = "Hello"; char str2[] = "Hello"; char str3[] = "World"; int result1 = memcmp(str1, str2, sizeof(str1)); int result2 = memcmp(str1, str3, sizeof(str1)); if (result1 == 0) { printf("str1 and str2 are equal.\n"); } else { printf("str1 and str2 are not equal.\n"); } if (result2 > 0) { printf("str1 is greater than str3.\n"); } else if (result2 < 0) { printf("str1 is less than str3.\n"); } else { printf("str1 and str3 are equal.\n"); } return 0; }
输出结果为:
str1 and str2 are equal. str1 is less than str3.
注意,memcmp
函数比较的是内存块的内容,而不是字符串的内容,因此在比较字符串时需要考虑字符串的结束符\0
。通常使用sizeof
运算符获取内存块的大小来保证比较的字节数正确。