C++ cstring memcmp() 函数
示例
比较两块内存,看哪块更大:
char myStr1[] = "ABCD";
char myStr2[] = "ABCE";
int cmp = memcmp(myStr1, myStr2, 4);
if(cmp > 0) {
cout << myStr1 << " is greater than " << myStr2 << "
";
} else if(cmp < 0) {
cout << myStr2 << " is greater than " << myStr1 << "
";
} else {
cout << myStr1 << " is equal to " << myStr2 << "
";
}
亲自试一试 »
定义和用法
memcmp() 函数比较两个内存块,并返回一个整数,指示哪个内存块更大。
此比较操作会从位置 0 开始,逐个比较两个内存块中相同位置的字节,直到其中一个不匹配或到达内存块末尾为止。共有三种可能的情况:
- 如果到达内存块末尾且未发现任何不匹配,则函数返回零。
- 如果第一个内存块中的字节值更大,则函数返回一个正数。
- 如果第二个内存块中的字节值更大,则函数返回一个负数。
memcmp() 函数定义在 <cstring> 头文件中。
注意: memcmp() 函数适用于任何类型的内存。当处理 C 风格的字符串(char 数组)时,最好改用 strcmp() 函数。
语法
memcmp(void * pointer1, void * pointer2, size_t size);
size_t 数据类型为正整数。
参数值
| 参数 | 描述 |
|---|---|
| pointer1 | 必需。指向要比较的内存块之一的指针。 |
| pointer2 | 必需。指向要比较的内存块之一的指针。 | size | 必需。要比较的字节数。 |
技术细节
| 返回值: | 一个int值,如果第一个内存块大于第二个内存块,则为正;如果第二个内存块大于第一个内存块,则为负;如果两个内存块相等,则为0。 |
|---|

