std::strcmp

出自cppreference.com
在標頭 <cstring> 定義
int strcmp( const char* lhs, const char* rhs );

以字典序比較兩個空終止字節字符串。

結果的正負號是被比較的字符串中首對不同字符(都轉譯成 unsigned char)的值間的差值的正負號。

lhsrhs 不是指向空終止字節字符串的指針,則行為未定義。

參數

lhs, rhs - 指向待比較的空終止字節字符串的指針

返回值

若字典序中 lhs 先出現於 rhs 則為負值。

lhsrhs 比較相等則為零。

若字典序中 lhs 後出現於 rhs 則為正值。

示例

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

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

參閱

比較兩個字符串的一定量字符
(函數) [編輯]
比較兩個寬字符串
(函數) [編輯]
比較兩個緩衝區
(函數) [編輯]
按照當前本地環境比較兩個字符串
(函數) [編輯]
strcmp 的 C 文檔