怎樣判斷兩個字符串是否相等
C語言提供了幾個標准庫函數,可以比較兩個字符串是否相同。以下是用strcmp()函數比較字符串的一個例子:
#include <stdio. h>
#include <string. h>
void main (void);
void 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 equalto str_3.\n");
}
上例的打印輸出如下所示:
str_1 is equal to str_2.
str_1 is not equal to str_3.
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”。
