strcmp與strncmp的區別

2021-08-14 09:12:30 字數 934 閱讀 1543

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

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

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函式是指定比較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都是用來比較字串的,區別在於能否比較指定長度字串。strcmp c c 函式,比較兩個字串 設這兩個字串為str1,str2,若str1 str2,則返回零 若str1 str2,則返回正數 若str1 str2,則返回負數。即 兩個字串自左向右逐個字元相比 按ascii...