1. 程式人生 > >c語言比較兩個字串是否相等strcmp

c語言比較兩個字串是否相等strcmp

c語言提供了幾個標準庫函式,可以比較兩個字串是否相同。以下是用strcmp()函式比較字串的一個例子:

個人網站:www.ctrlqun.com

#include <stdio.h>
#include <string.h>
int main(void)
{
    char str_1[] = "abc"; 
    char str_2[] = "abc";
    char str_3[] = "ABC";
    if (strcmp(str_1, str_2) == 0)
        printf("str_1 is equal to str_2. \n");
    else
        printf("str_1 is not equal to str_2. \n");
    if (strcmp(str_1, str_3) == 0)
        printf("str_1 is equal to str_3.\n");
    else
        printf("str_1 is not equal to str_3.\n");
    return 0;
}

上例的列印輸出如下所示:   

strcmp()函式有兩個引數,即要比較的兩個字串。strcmp()函式對兩個字串進行大小寫敏感的(case-sensitiVe)和字典式的(lexicographic)比較,並返回下列值之一:
----------------------------------------------------
    返  回  值         意  義
----------------------------------------------------
    <0               第一個字串小於第二個字串
     0               兩個字串相等    ·
    >0               第一個字串大於第二個字串
----------------------------------------------------

在上例中,當比較str_1(即“abc”)和str_2(即“abc”)時,strcmp()函式的返回值為0。然而,當比較str_1(即"abc")和str_3(即"ABC")時,strcmp()函式返回一個大於0的值,因為按ASCII順序字串“ABC”小於“abc”。

strcmp()函式有許多變體,它們的基本功能是相同的,都是比較兩個字串,但其它地方稍有差別。下表列出了C語言提供的與strcmp()函式類似的一些函式:   
-----------------------------------------------------------------
    函  數  名                   作  用
-----------------------------------------------------------------
    strcmp()         對兩個字串進行大小寫敏感的比較
    strcmpi()        對兩個字串進行大小寫不敏感的比較
    stricmp()        同strcmpi()
    strncmp()        對兩個字串的一部分進行大小寫敏感的比較
    strnicmp()       對兩個字串的一部分進行大小寫不敏感的比較
-----------------------------------------------------------------
在前面的例子中,如果用strcmpi()函式代替strcmp()函式,則程式將認為字串“ABC”等於“abc”。

個人網站:www.ctrlqun.com