strncmp() 声明
int strncmp( const char* lhs, const char* rhs, size_t count );
strncmp()
函数接受三个参数:lhs、rhs 和 count。它按字典序比较 lhs 和 rhs 的内容,最多比较 count 个字符。结果的符号是 lhs 和 rhs 中第一个不同字符对之间差值的符号。
如果 lhs 或 rhs 指向的不是以 null 结尾的字符串,则 strncmp()
的行为是未定义的。
它定义在 <cstring> 头文件中。
strncmp() 参数
lhs 和 rhs
:指向要比较的以 null 结尾的字符串的指针。count
:要比较的最大字符数。
strncmp() 返回值
strncmp()
函数返回一个
- 正值,如果 lhs 中第一个不同的字符大于 rhs 中相应的字符。
- 负值,如果 lhs 中第一个不同的字符小于 rhs 中相应的字符。
- 0,如果 lhs 和 rhs 的前 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
另请阅读