📅  最后修改于: 2023-12-03 15:14:06.962000             🧑  作者: Mango
在 C 和 C++ 中,strncmp()
和 strcmp()
是两个经常使用的函数。它们都用于比较两个字符串的内容是否相同。但是,它们的使用方式有所不同。
strcmp()
函数用于比较两个字符串是否相同。该函数使用以下语法:
int strcmp(const char* str1, const char* str2);
该函数接受两个参数 str1
和 str2
,分别是需要比较的两个字符串。如果两个字符串相同,strcmp()
返回值为0。如果 str1
小于 str2
,返回值为负数。如果 str1
大于 str2
,返回值为正数。返回值的具体数值并不重要,只需要知道正数表示第一个字符串大于第二个字符串,负数则反之。
例如,我们可以使用以下代码比较两个字符串是否相同:
const char* str1 = "hello";
const char* str2 = "world";
int result = strcmp(str1, str2);
if (result == 0) {
std::cout << "The two strings are the same" << std::endl;
} else {
std::cout << "The two strings are different" << std::endl;
}
输出结果为:
The two strings are different
strncmp()
函数也用于比较两个字符串的内容是否相同。然而,strncmp()
与 strcmp()
的不同之处在于,它只比较字符串的前 n
个字符,而不是全部字符。该函数使用以下语法:
int strncmp(const char* str1, const char* str2, size_t n);
该函数接受三个参数 str1
、str2
和 n
,分别是需要比较的两个字符串和需要比较的字符数量。如果两个字符串前 n
个字符都相同,strncmp()
返回值为0。如果 str1
小于 str2
,返回值为负数。如果 str1
大于 str2
,返回值为正数。
例如,我们可以使用以下代码比较两个字符串前四个字符是否相同:
const char* str1 = "hello";
const char* str2 = "help";
int result = strncmp(str1, str2, 4);
if (result == 0) {
std::cout << "The first four characters of the two strings are the same" << std::endl;
} else {
std::cout << "The first four characters of the two strings are different" << std::endl;
}
输出结果为:
The first four characters of the two strings are the same
strcmp()
和 strncmp()
都是用于比较字符串内容的函数,但是它们的不同之处在于 strncmp()
可以指定比较的字符数量。在实际应用中,我们需要根据具体情况选择使用哪个函数。如果我们需要比较整个字符串是否相同,则使用 strcmp()
;如果我们只需要比较字符串的前几个字符是否相同,则使用 strncmp()
。