c - C 语言的字典顺序

标签 c string comparison lexicographic

我正在处理 C 中的字符串,我想问一下词典顺序到底是什么以及在 C 中如何使用。这是比较 2 个字符串的最佳方法。我读过有关 strcmp 及其词典比较的内容,但我很困惑。

最佳答案

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。

关于c - C 语言的字典顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37373421/

相关文章:

从主函数调用结构值时无法打印值

c++ - 尝试将字符串文字作为模板参数传递

string - [T] 与 [T] 之间的差异

c - 如何在 C 中将 4 个数字打印为字符串?

c - PCRE 不匹配 utf8 字符

c - 评估表达式时是否总是发生整数提升?

java比较两个枚举

python - 如何检测 2 篇新闻文章是否具有相同的主题? (Python语言-比较)

c# - 比较两位小数

c函数,得到一个矩阵,然后对它进行平方