在C语言中,strcmp
函数用于比较两个字符串。它的原型定义在 <string.h>
头文件中。strcmp
函数比较两个字符串直到找到一个不同的字符或者到达字符串的末尾。函数的原型如下:
int strcmp(const char *str1, const char *str2);
参数
str1
:指向第一个要比较的字符串的指针。str2
:指向第二个要比较的字符串的指针。
返回值
- 如果
str1
和str2
字符串相等,返回0
。 - 如果
str1
小于str2
,返回小于0
的值(具体值依实现而定,通常是负值,表示str1
在字典顺序上排在str2
前面)。 - 如果
str1
大于str2
,返回大于0
的值(具体值依实现而定,通常是正值,表示str1
在字典顺序上排在str2
后面)。
用法示例
下面的例子展示了如何使用 strcmp
函数来比较两个字符串:
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "hello";
char str2[] = "world";
char str3[] = "hello";
// 比较 str1 和 str2
if (strcmp(str1, str2) == 0) {
printf("str1 and str2 are equal.\n");
} else {
printf("str1 and str2 are not equal.\n");
}
// 比较 str1 和 str3
if (strcmp(str1, str3) == 0) {
printf("str1 and str3 are equal.\n");
} else {
printf("str1 and str3 are not equal.\n");
}
return 0;
}
在这个例子中,str1
和 str3
是相等的字符串,所以 strcmp(str1, str3)
会返回 0
,表明这两个字符串是相等的。而 str1
和 str2
是不同的字符串,所以 strcmp(str1, str2)
会返回一个非零值,表明这两个字符串是不相等的。
注意
strcmp
函数对大写和小写字母敏感,也就是说,它认为大写和小写字母是不同的字符。如果需要进行不区分大小写的比较,可以使用strcasecmp
函数(或在某些环境中可能是_stricmp
)。- 在使用
strcmp
函数比较字符串时,确保两个字符串都以空字符('\0'
)结尾,否则可能导致未定义行为。