C++ cstring strncmp() 函数
定义和用法
strncmp() 函数用于比较两个 C 风格字符串的前 n 个字符,并返回一个整数以指示哪个字符串更大。
在此比较中,从两个字符串的相同位置开始,从左到右逐个字符进行比较,直到出现不匹配的字符、已进行 n 次比较或到达字符串的末尾。有以下四种可能的情况:
- 如果进行了 n 次比较且没有出现任何不匹配的字符,则函数返回 0。
- 如果已到达两个字符串的末尾且没有出现任何不匹配的字符,则函数返回 0。
- 在首次出现不匹配时,如果第一个字符串中字符的 ASCII 值更大,则函数返回一个正数。
- 在首次出现不匹配时,如果第二个字符串中字符的 ASCII 值更大,则函数返回一个负数。
strncmp() 函数定义在 <cstring> 头文件中。
注意:若要比较整个字符串,请使用 strcmp() 函数。
实例
比较两个字符串的前 3 个字符:
char myStr1[] = "ABCD";
char myStr2[] = "ABCE";
int cmp = strncmp(myStr1, myStr2, 3);
if(cmp > 0) {
cout << myStr1 << " 大于 " << myStr2 << "\n";
} else if(cmp < 0) {
cout << myStr2 << " 大于 " << myStr1 << "\n";
} else {
cout << myStr1 << " 等于 " << myStr2 << "\n";
}
语法
strcmp(const char * str1, const char * str2, size_t n);
size_t 数据类型是正整数。
参数
| 参数 | 描述 |
|---|---|
| str1 | 必需。要比较的字符串之一。 |
| str2 | 必需。要比较的字符串之一。 |
| n | 必需。正整数,用于限制要比较的字符数。 |
技术细节
| 返回: |
如果第二个字符串更大,则返回负数。 如果两个字符串相等,则返回 0。 |
|---|