首页 > 编程笔记

C语言memcmp():比较两块内存中数据的大小

memcmp() 是 C语言的一个标准库函数,定义在<string.h>头文件中。

memcmp() 用于比较两块内存区域的内容,不论存储的内容是字符串、整数还是其它类型的数据,该函数都会逐个字节进行比较。

memcmp() 函数的原型如下:
int memcmp(const void *s1, const void *s2, size_t n);

参数

s1 和 s2:分别指向要比较的两块内存区域。
n:要比较的字节数。

返回值

如果 s1 和 s2 的前 n 个字节完全相同,则返回 0;否则,返回一个非 0 数:

【实例】下面是一个 C语言示例代码,演示了如何使用 memcmp() 函数:
#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello, World!";
    char str2[] = "Hello, World!";
    char str3[] = "Hello, C!";

    // 比较相同的字符串
    if (memcmp(str1, str2, strlen(str1)) == 0) {
        printf("str1 和 str2 相同。\n");
    }

    // 比较不同的字符串
    if (memcmp(str1, str3, strlen(str1)) != 0) {
        printf("str1 和 str3 不同。\n");
    }

    return 0;
}
输出结果为:

str1 和 str2 相同。
str1 和 str3 不同。

在这个示例中比较了两组字符串。第一组是完全相同的字符串,因此 memcmp() 返回 0。第二组是不同的字符串,因此 memcmp() 返回非 0 数。

推荐阅读