跳轉到內容

C 程式設計/string.h/strncmp

來自華夏公益教科書,自由的教科書

strncmp() 是一個標準庫函式,用於比較兩個字串,最多比較指定長度。該函式在 string.h 中宣告,並與以下原型相容

int strncmp (const char * s1, const char * s2, size_t num);

該函式使用 字典序 比較字串,但最多檢查 num 個字元。如果字串相等,或者它們的第一個 num 個字元相等,則返回零;否則,如果 s1 小於 s2,則返回一個負整數,如果 s1 大於 s2,則返回一個正整數。一個簡單的實現可能如下所示

int strncmp (const char * const s1, const char * const s2, const size_t num)
{
    const unsigned char * const us1 = (const unsigned char *) s1;
    const unsigned char * const us2 = (const unsigned char *) s2;

    for(size_t i = (size_t)0; i < num; ++i)
    {
        if(us1[i] < us2[i])
           return -1;
        else if(us1[i] > us2[i])
           return 1;
        else if(! us1[i]) /* null byte -- end of string */
           return 0;
    }

    return 0;
}

然而,在實踐中,實際的實現會進行顯著的最佳化。

[編輯 | 編輯原始碼]
華夏公益教科書