# std::strcmp

< cpp‎ | string‎ | byte

定义于头文件 `<cstring>` |  |
int strcmp( const char *lhs, const char *rhs ); |  |

以字典序比较二个空终止字节字符串。

结果的符号是被比较的字符串中首对不同字符（都转译成 unsigned char ）的值间的差值符号。

若 `lhs` 或 `rhs` 不是指向空终止字节字符串的指针，则行为未定义。

### 参数

lhs, rhs | - | 指向待比较的空终止字节字符串的指针

### 返回值

若字典序中 `lhs` 先出现于 `rhs` 则为负值。

若 `lhs` 与 `rhs` 比较相等则为零。

若字典序中 `lhs` 后出现于 `rhs` 则为正值。

### 示例

    #include <vector>
    #include <cstring>
    #include <algorithm>
    #include <iostream>

    int main()
    {
        std::vector<const char*> cats {"Heathcliff", "Snagglepuss", "Hobbes", "Garfield"};
        std::sort(cats.begin(), cats.end(), [](const char *strA, const char *strB) {
            return std::strcmp(strA, strB) < 0;
        });

        for (const char *cat : cats) {
            std::cout << cat << '\n';
        }
    }

输出：

    Garfield
    Heathcliff
    Hobbes
    Snagglepuss

### 参阅

strncmp | 比较两个字符串的一定量字符 (函数)
wcscmp | 比较两个宽字符串 (函数)
memcmp | 比较两个缓冲区 (函数)
strcoll | 按照当前本地环境比较两个字符串 (函数)