C++ strncmp()

strncmp() 声明

int strncmp( const char* lhs, const char* rhs, size_t count );

strncmp() 函数接受三个参数:lhsrhscount。它按字典序比较 lhsrhs 的内容,最多比较 count 个字符。结果的符号是 lhsrhs 中第一个不同字符对之间差值的符号。

如果 lhs 或 rhs 指向的不是以 null 结尾的字符串,则 strncmp() 的行为是未定义的。

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

strncmp() 参数

  • lhs 和 rhs:指向要比较的以 null 结尾的字符串的指针
  • count:要比较的最大字符数。

strncmp() 返回值

strncmp() 函数返回一个

  • 正值,如果 lhs 中第一个不同的字符大于 rhs 中相应的字符。
  • 负值,如果 lhs 中第一个不同的字符小于 rhs 中相应的字符。
  • 0,如果 lhsrhs 的前 count 个字符相等。

示例:strncmp() 函数的工作原理

#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[] = "Armstrong";
    char rhs[] = "Army";
    int result;

    result = strncmp(lhs,rhs,3);
    display(lhs,rhs,result,3);

    result = strncmp(lhs,rhs,4);
    display(lhs,rhs,result,4);

    return 0;
}

运行程序后,输出将是

First 3 characters of Armstrong and Army are same
Armstrong precedes Army

另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战