【C语言函数strcmp】`strcmp` 是 C 语言中一个非常常用的字符串比较函数,定义在 `string.h` 头文件中。它用于比较两个字符串的大小,根据字符的 ASCII 值进行逐个比较,直到遇到不同的字符或字符串结束。
一、函数简介
| 函数名 | strcmp |
| 所属头文件 | `string.h` |
| 功能 | 比较两个字符串的大小 |
| 返回值 | 整数(结果取决于比较结果) |
二、函数原型
```c
int strcmp(const char s1, const char s2);
```
- 参数说明:
- `s1`:第一个要比较的字符串。
- `s2`:第二个要比较的字符串。
- 返回值说明:
- 如果 `s1 < s2`,返回一个负整数。
- 如果 `s1 == s2`,返回 0。
- 如果 `s1 > s2`,返回一个正整数。
三、使用示例
```c
include
include
int main() {
char str1[] = "hello";
char str2[] = "world";
char str3[] = "hello";
int result1 = strcmp(str1, str2); // 返回负数
int result2 = strcmp(str1, str3); // 返回 0
printf("strcmp(str1, str2) = %d\n", result1);
printf("strcmp(str1, str3) = %d\n", result2);
return 0;
}
```
输出结果:
```
strcmp(str1, str2) = -1
strcmp(str1, str3) = 0
```
四、注意事项
| 注意事项 | 说明 |
| 字符串必须以 `\0` 结尾 | 否则可能导致未定义行为 |
| 不区分大小写 | `strcmp` 是区分大小写的,如需不区分,可使用 `stricmp`(Windows)或 `strcasecmp`(Linux) |
| 比较方式为逐字节比较 | 根据 ASCII 值依次比较每个字符 |
五、常见用途
- 判断两个字符串是否相等。
- 排序字符串数组。
- 验证用户输入是否符合预期。
六、总结
`strcmp` 是 C 语言中最基础且重要的字符串处理函数之一,适用于各种字符串比较场景。虽然它简单易用,但在实际应用中需要注意其特性,比如区分大小写、依赖 `\0` 结尾等,以避免程序出现错误或不可预测的行为。


