C++ cstring memcmp() 函数
定义和用法
memcmp() 函数比较两个内存块,并返回一个整数表示哪个内存块更大。
该函数会从位置 0 开始,逐个比较两个内存块中相同位置的字节,直到发现不匹配的字节或到达内存块末尾。存在三种可能的比较结果:
- 如果到达内存块末尾且所有字节都匹配,则函数返回 0
- 首次出现不匹配时,若第一个内存块的字节值更大,则返回正整数
- 首次出现不匹配时,若第二个内存块的字节值更大,则返回负整数
memcmp() 函数定义在 <cstring> 头文件中。
注意:memcmp() 函数适用于任何类型的内存块。当处理 C 风格字符串(char 数组)时,建议改用 strcmp() 函数。
实例
比较两个内存块的大小:
char myStr1[] = "ABCD";
char myStr2[] = "ABCE";
int cmp = memcmp(myStr1, myStr2, 4);
if(cmp > 0) {
cout << myStr1 << " 大于 " << myStr2 << "\n";
} else if(cmp < 0) {
cout << myStr2 << " 大于 " << myStr1 << "\n";
} else {
cout << myStr1 << " 等于 " << myStr2 << "\n";
}
语法
memcmp(void * pointer1, void * pointer2, size_t size);
size_t 数据类型是正整数。
参数
| 参数 | 描述 |
|---|---|
| pointer1 | 必需。指向要比较的第一个内存块的指针。 |
| pointer2 | 必需。指向要比较的第二个内存块的指针。 |
| size | 必需。要比较的字节数。 |
技术细节
| 返回: |
返回整数值。 第一个内存块较大时返回正数,第二个内存块较大时返回负数,两者相等时返回 0。 |
|---|