当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ memcmp()用法及代码示例


C++中的memcmp()函数比较两个指针对象的指定字符数

memcmp()原型

int memcmp( const void* lhs, const void* rhs, size_t count );

memcmp() 函数采用三个参数:lhs , rhscount。此函数首先将 lhsrhs 指向的对象解释为 unsigned char 的数组。然后它按字典顺序比较lhsrhs 的前count 字符。

它在<cstring> 头文件中定义。

参数:

  • lhs and rhs:指向要比较的内存对象的指针。
  • count:要比较的最大字节数。

返回:

memcmp() 函数返回:

  • 如果 lhs 中的第一个不同字节大于 rhs 中的相应字节,则为正值。
  • 如果 lhs 中的第一个不同字节小于 rhs 中的相应字节,则为负值。
  • 如果 lhsrhs 的第一个计数字节相等,则为 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++ memcmp()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。