用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编码
我真的很喜欢你的工作风格. 鼠博士. 历史