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...