strcmp與strncmp的區別

2022-02-08 05:09:25 字數 932 閱讀 1610

***************===

strcmp與strncmp都是用來比較字串的,區別在於能否比較指定長度字串。

strcmp

c/c++函式,比較兩個字串

設這兩個字串為str1,str2,

若str1==str2,則返回零;

若str1 > str2,則返回正數;

若str1< str2,則返回負數。

即:兩個字串自左向右逐個字元相比(按ascii值大小相比較),直到出現不同的字元或遇』\0』為止。

如:strcmp(「abcd」,」abcd」)的返回值是 0;

strcmp(「abcd」,」dcba」)的返回值是 -1;

strcmp(「dcba」,」abcd」)的返回值是 1;

還有一種情況:

strcmp(「a」,」c」)的返回值是 -2;

strcmp(「c」,」a」)的返回值是 2;

這個確切的數值是依賴不同的c的實現

特別注意:strcmp(const char s1,const char s2)這裡面只能比較字串,即可用於比較兩個字串常量,或比較陣列和字串常量,不能比較數字等其他形式的引數。

strncmp

strncmp函式是指定比較size個字元。也就是說,如果字串s1與s2的前size個字元相同,函式返回值為0。此函式功能即比較字串str1和str2的前maxlen個字元。如果前maxlen位元組完全相等,返回值就=0;在前maxlen位元組比較過程中,如果出現str1[n]與str2[n]不等,則依次比較str1和str2的前n位,設i(i< n)為兩字串首次的不同位,則返回(str1[i]-str2[i])。

如;str1=」abcdhg」,str2=」abcdef」

strncmp(str1,str2,4)的返回值是 0;

strncmp(str1,str2,5)的返回值是 1;

strcmp與strncmp的區別

strcmp與strncmp都是用來比較字串的,區別在於能否比較指定長度字串。c c 函式,比較兩個字串 設這兩個字串為str1,str2,若str1 str2,則返回零 若str1 str2,則返回正數 若str1 str2,則返回負數。即 兩個字串自左向右逐個字元相比 按ascii值大小相比較 ...

strcmp與strncmp的區別

strcmp與strncmp都是用來比較字串的,區別在於能否比較指定長度字串。c c 函式,比較兩個字串 設這兩個字串為str1,str2,若str1 str2,則返回零 若str1 str2,則返回正數 若str1 str2,則返回負數。即 兩個字串自左向右逐個字元相比 按ascii值大小相比較 ...

strcmp與strncmp的區別

strcmp與strncmp都是用來比較字串的,區別在於能否比較指定長度字串。c c 函式,比較兩個字串 設這兩個字串為str1,str2,若str1 str2,則返回零 若str1 str2,則返回正數 若str1 str2,則返回負數。即 兩個字串自左向右逐個字元相比 按ascii值大小相比較 ...