📅  最后修改于: 2023-12-03 15:14:02.996000             🧑  作者: Mango
C++标准库中的std::memcmp()
函数用于比较两个内存区块的内容。它可以用于比较数组、字符串等类型的数据。
std::memcmp()
函数比较两个内存区块的内容,并返回一个整数。如果返回值为0,则两个区块内容完全相等;如果返回值为正数,表示第一个区块的第一个不同字节大于第二个区块的对应字节;如果返回值为负数,则相反。
函数定义如下:
int memcmp(const void* ptr1, const void* ptr2, size_t num);
参数说明:
ptr1
:要比较的第一个内存块的指针ptr2
:要比较的第二个内存块的指针num
:要比较的字节数以下是一个示例程序,用于比较两个数组的内容:
#include <iostream>
#include <cstring>
int main()
{
char str1[] = "hello";
char str2[] = "world";
if (std::memcmp(str1, str2, 5) == 0)
std::cout << "str1 and str2 are equal." << std::endl;
else
std::cout << "str1 and str2 are not equal." << std::endl;
return 0;
}
输出结果为:
str1 and str2 are not equal.
std::memcmp()
函数只比较内存块的内容,并不比较指针指向的地址。因此,在比较两个指针指向的字符串时,必须确保它们的长度相等,并且它们的终止符都在相同的位置上。std::memcmp()
函数比较的是字节,因此比较字符串时应该使用其它的库函数,如std::strcmp()
。std::memcmp()
比较结构体的内容,但是不要将结果转换为布尔值直接使用。以上是关于std::memcmp()
函数的介绍,希望对你有所帮助!