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