C语言中strcmp比较不同长度的字符串吗?

如题所述

strcmp() 用来比较字符串(区分大小写),其原型为:
int strcmp(const char *s1, const char *s2);
【参数】s1, s2 为需要比较的两个字符串。

字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1 第一个字符值减去s2
第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0
则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。

【返回值】若参数s1 和s2 字符串相同则返回0。s1 若大于s2 则返回大于0 的值。s1 若小于s2 则返回小于0 的值。

所以比较的是字典序的大小,比如"a" 比 "ASDNZONWAOIDAOWIJDOWADNWO"要大
"aaaab" 比 "aaaaa" 大
长度不影响比较结果,除非两个字符串一个是另一个的子串,那么返回值会被影响
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-02
按照逐个字符比较的方式进行比较大小,这要从前向后有一个不同,大小即见分晓。如果一个字符串是另外一个字符串的子集,则子集小于另外一个字符串。只有两个字符串完全相同,才大小相同,并且返回0.本回答被网友采纳
第2个回答  2016-05-08
可以比较不同长度的,返回非0。
相似回答