目录
一、strcmp函数是什么?
strcmp
是一个在 C 语言中常用的函数,用于比较两个字符串。这个函数定义在 <string.h>
头文件中。
函数原型如下:
int strcmp(const char *s1, const char *s2);
strcmp函数会比较两个字符串
s1和
s2
返回值有三种可能:
- 如果
s1
和s2
完全相同,返回0
。 - 如果
s1
在字典顺序上小于s2
,返回一个负整数。 - 如果
s1
在字典顺序上大于s2
,返回一个正整数。
字典顺序比较是基于 ASCII 码。
小写字母的 ASCII 值大于大写字母所以有:
char str1[] = "Hello";
char str2[] = "World";
char str3[] = "Hello";
int result1 = strcmp(str1, str2); //结果为 -1
int result2 = strcmp(str1, str3); //结果为0
这是因为“Hello" 在字典顺序上小于 "World",而“Hello" 在字典顺序上等于 “Hello" 。
二、使用场景
用作判断两个字符串是否相等
例如:处理用户输入
#include <stdio.h>
#include <string.h>
int main() {
char str1[100];
char str2[100];
printf("请输入第一个字符串: ");
fgets(str1, sizeof(str1), stdin); // 读取用户输入的字符串,包括空格
str1[strcspn(str1, "\n")] = 0; // 去除 fgets 读取的换行符
printf("请输入第二个字符串: ");
fgets(str2, sizeof(str2), stdin);
str2[strcspn(str2, "\n")] = 0;
if (strcmp(str1, str2) == 0) {
printf("您输入的两个字符串是相等的。\n");
} else {
printf("您输入的两个字符串是不相等的。\n");
}
return 0;
}
注意事项:使用 strcmp
时,应确保传入的字符串是以 '\0' 结尾的,否则函数的行为可能是未定义的。
三、总结
strcmp
函数是 C 语言标准库中的一个函数,用于比较两个字符串。它接受两个以空字符 '\0' 结尾的字符串作为参数,并返回一个整数,表示这两个字符串在字典顺序上的关系。总的来说这是一个非常有用的函数,你可以用于排序算法、查找算法、字符串匹配等场景。