lstrcmp 比较 A 和 a
lstrcmp ,用到头文件,#include <windows.h>
WIN API提供的比较字符串函数,区分大小写。
先比较字母顺序,此时由于大小写不影响,
比如
printf("%d", lstrcmpi(“a”, “B”));
printf("%d", lstrcmpi(“A”, “B”));
printf("%d", lstrcmpi(“a”, “b”));
printf("%d", lstrcmpi(“a”, “B”));
结果都是一样的,由于a在b前面,结果都是-1,也就是a<b
如果字母顺序一样,比较大小写。
(具体字符串比较更复杂一点,这里就简化一下,注重字母部分)
百度百科说"A" < “a” < “B” < “b”
但实际上运行代码
printf("%d", lstrcmp(“A”, “a”));
结果是1,说明"A" > “a”
(不区分大小写的lstrcmpi,其结果是0)
如果降序排列多行字符串,确实需要"A" > “a” 才能保证先小写后大写,类似这样:
a
A
hello
HELLO
zzz123
所以为什么网上翻出来都说"A" < “a” ,但实际上运行出来结果却是1,两者存在冲突,没搞懂。
虽然不影响使用,但是容易被误导。