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