📅  最后修改于: 2023-12-03 15:13:54.689000             🧑  作者: Mango
在C++中,memcmp()
函数可以用来比较两个指针所指向的内存区域中的前N个字节是否相等。该函数定义在头文件<cstring>
中。
int memcmp(const void* ptr1, const void* ptr2, size_t num);
其中,ptr1
和ptr2
分别是要比较的内存地址,num
是要比较的字节数。
memcmp()
函数按字节比较,如果ptr1
所指向的内存区域小于ptr2
所指向的内存区域,则返回一个负数;如果两个内存区域相等,则返回0;如果ptr1
所指向的内存区域大于ptr2
所指向的内存区域,则返回一个正数。
#include <iostream>
#include <cstring>
int main() {
const char* str1 = "Hello";
const char* str2 = "Helao";
int result = std::memcmp(str1, str2, 4);
if (result < 0) {
std::cout << "str1 is less than str2" << std::endl;
}
else if (result == 0) {
std::cout << "str1 is equal to str2" << std::endl;
}
else if (result > 0) {
std::cout << "str1 is greater than str2" << std::endl;
}
return 0;
}
以上代码会对str1
和str2
的前4个字符进行比较,由于两个字符串第4个字符不同(l
和a
),因此输出结果是str1 is less than str2
。
memcmp()
函数并不考虑字符串的结束标志\0
,因此在比较字符串时需要指定比较的字节数。memcmp()
函数可以用来比较任意类型的内存区域,而不只是字符串。