原型:int strcmp(const char *s1, const char *s2);
頭文件:#include <string.h>
功能:比較兩個字符串大小
參數:s1、s2為進行比較的兩個字符串
返回值:若s1、s2字符串相等,則返回零;若s1大於s2,則返回一個正數;若s1小於s2,則返回負數。
說明:strcmp()函數根據ACSII碼的值比較兩個字符串。從第一個字符開始,依次將s1中某個下標(從0開始依次往后)的字符的ACSII碼值,減去s2中相同下標的字符的ACSII碼值,若差值不為零,則返回ACSII碼差值(視使用的編譯器不同,也有可能返回-1、0、1這三個值之一)。若差值為零則比較下一個下標位置的兩個字符,直到出現差值不為0,或者檢索到'\0'為止s1、s2對應位置的字符的ACSII碼值都相同。注意:絕大多數字符串相關操作都出現'\0'就代表字符串結束,'\0'之后的字符往往沒有意義甚至會帶來錯誤。
幾個比較結果的舉例:
1 char *p="abc"/"Abc"/"abcde"/"abc\0d"; 2 char *q="ac" /"aBC"/"abcf" /"abc\0z"; 3 printf("%d\n",strcmp(p,q));// -1/-1/-1/0
strcmp可以接受的形式:
①、指向字符串的指針;②、字符數組的數組名;③、字符串。
其中,使用②會產生變數,如char p[4]="abcd"只是字符數組不是字符串沒有'\0'結尾,也能使用strcmp進行比較,此時比較的末尾便不是'\0',而是最后一個數組元素。