我正在研究C中的字符串,我想问一下究竟什么是Lexicographic Order以及如何在C中使用。这是比较2个字符串的最佳方法。我读过关于strcmp和它的词典比较,但我很困惑。
答案 0 :(得分:2)
strcmp
使用词典顺序来比较字符串。也就是说,它遵循字母表。在英语中,F直接在G之前,Z直接在Y之后。strcmp
考虑到这一点,因为ASCII表中的字符按字母顺序成功。典型的strcmp
函数将是
int strcmp(const char *a, const char *b)
{
for (; *a && *b && *a == *b; ++a, ++b)
;
return *b - *a;
}
它遍历字符,而\0
未被看到,当前字符相等。一旦角色变得不相等或看到\0
,循环就会被破坏,并且return
表达式会被评估。如果看到\0
,则两个字符都相同,\0
- \0
必须为0.
答案 1 :(得分:0)
词典顺序是词典定义的顺序,或人们沟通方式定义的顺序。我们讲英语的人都认为,在我们的词典中,Apple这个词出现在Cat之前,我们称之为“字母顺序”。在您的情况下,使用strcmp,它将是ASCII图表定义的顺序,只要您使用一致的大小写,它也可以按字母顺序排列。 'A'小于'B',因为'A'出现在ASCII图表中的'B'之前。