用C比较字符串 – STRCMP
1. string.h中STRCMP功能
相比 2 的C号,我们已经做了一些非常简单的数学 <, >, >=, <=, ==, !=, 然而,比较字符串,那么我们就不能使用需要使用函数计算 STRCMP 在图书馆 文件string.h.
的strcmp函数比较字符串S1和S2链和给出的结果:
- 1 如果s1大于s2
- 0 如果S1 S2一样
- -1 如果s1小于s2
注意: 在Linux中, 这个函数返回一个负值, 正, 0 (之间的距离为 2 分别不同的字符在S1中, S2).
例如,下面的程序:
#include <stdio.h>
#include <string.h>
int main()
{
char s1[20];
char s2[20];
do
{
printf("Enter s1: ");
gets(s1);
printf("Enter s2: ");
gets(s2);
int x = strcmp(s1, s2);
printf("x = %d", x);
if(x < 0) printf(" => %s < %s", s1, s2);
if(x > 0) printf(" => %s > %s", s1, s2);
if(x == 0)printf(" => %s = %s", s1, s2);
printf("\n\n");
} while ( strcmp(s1, s2) != 0);
return 0;
}
结果:
进入S1: 挂
进入S2: 何
X = -1 =>航 < 何进入S1: 香港
进入S2: 她
X = 1 =>香>汉进入S1: 洪
进入S2: 鸿
X = -1 =>红 < 鸿进入S1: 办事处
进入S2: 办事处
X = 0 =>的=利息
2. 原理比较
原理比较 2 链,轮流浏览器 2 每个字符 2 链. ASCII码的比较 2 字符, 字符代码大于较大的链和停止比较. 如果字符的字符串有史以来之前较小的字符串比较.
| S1 | S2 | 结果 | 原因 |
|---|---|---|---|
| 挂 | 何 | 挂 < 何 | 做一个 < 该 (97 < 111) |
| 香港 | 她 | 香港>提问 | 从S2的所有字符比较 |
| 洪 | 鸿 | 洪 < 鸿 | 做H的 < ħ (72 < 104) |
| 办事处 | 办事处 | 利息=利息 | 2 相同的序列 |
参考 ASCII编码



我真的很喜欢你的工作风格. 鼠博士. 历史