當前位置:成語大全網 - 新華字典 - C語言中判斷兩個字符串是否相同的方法

C語言中判斷兩個字符串是否相同的方法

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”。