C++中的memcmp()函数比较两个指针对象的指定字符数
memcmp()原型
int memcmp( const void* lhs, const void* rhs, size_t count );
memcmp()
函数采用三个参数:lhs
, rhs
和 count
。此函数首先将 lhs
和 rhs
指向的对象解释为 unsigned char
的数组。然后它按字典顺序比较lhs
和rhs
的前count
字符。
它在<cstring> 头文件中定义。
参数:
lhs and rhs
:指向要比较的内存对象的指针。count
:要比较的最大字节数。
返回:
memcmp() 函数返回:
- 如果
lhs
中的第一个不同字节大于rhs
中的相应字节,则为正值。 - 如果
lhs
中的第一个不同字节小于rhs
中的相应字节,则为负值。 - 如果
lhs
和rhs
的第一个计数字节相等,则为 0。
示例:memcmp() 函数的工作原理
#include <cstring>
#include <iostream>
using namespace std;
void display(char *lhs, char *rhs, int result, int count)
{
if(result > 0)
cout << rhs << " precedes " << lhs << endl;
else if (result < 0)
cout << lhs << " precedes " << rhs << endl;
else
cout << "First " << count << " characters of " << lhs << " and " << rhs << " are same" << endl;
}
int main()
{
char lhs[] = "Hello World!";
char rhs[] = "Hello Earth!";
int result;
result = memcmp(lhs, rhs, 5);
display(lhs, rhs, result, 5);
result = memcmp(lhs, rhs, 7);
display(lhs, rhs, result, 7);
return 0;
}
运行程序时,输出将是:
First 5 characters of Hello World! and Hello Earth! are same Hello Earth! precedes Hello World!
相关用法
- C++ memchr()用法及代码示例
- C++ memcpy()用法及代码示例
- C++ memset()用法及代码示例
- C++ memmove()用法及代码示例
- C++ merge()用法及代码示例
- C++ map lower_bound()用法及代码示例
- C++ multimap key_comp()用法及代码示例
- C++ multimap empty()用法及代码示例
- C++ multimap cend()用法及代码示例
- C++ multiset begin()、end()用法及代码示例
- C++ mbtowc()用法及代码示例
- C++ map::at()用法及代码示例
- C++ multiset value_comp()用法及代码示例
- C++ multimap insert()用法及代码示例
- C++ map max_size()用法及代码示例
- C++ multiset emplace()用法及代码示例
- C++ multiset lower_bound()用法及代码示例
- C++ multimap lower_bound()用法及代码示例
- C++ multiset crbegin()、crend()用法及代码示例
- C++ multimap rend()用法及代码示例
注:本文由纯净天空筛选整理自 C++ memcmp()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。