📜  memcmp (1)

📅  最后修改于: 2023-12-03 14:44:15.378000             🧑  作者: Mango

程序员介绍:memcmp

1. 前言

在程序中,有时需要比较两个对象是否相等。C/C++提供了memcmp函数来比较两个内存块的内容是否相等。

2. 函数定义
int memcmp(const void* ptr1, const void* ptr2, size_t num);
3. 参数说明
  • ptr1:指向要比较的第一个内存块的指针。
  • ptr2:指向要比较的第二个内存块的指针。
  • num:要比较的字节数。
4. 返回值
  • ptr1小于ptr2时,返回负整数。
  • ptr1等于ptr2时,返回0。
  • ptr1大于ptr2时,返回正整数。
5. 示例代码
#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
6. 总结

memcmp函数是比较两个内存块的内容是否相等的常用函数,常用于字符串、数组等对象的比较。特别注意,要比较的字节数num不能超过内存块的大小,否则函数行为未定义。