strncmp函數為字串比較函數,其函數語法為“int strncmp ( const char * str1, const char * str2, size_t n );”,功能是把str1和str2進行比較。
strncmp函數為字串比較函數,字串大小的比較是以ASCII 碼表上的順序來決定,此順序也為字元的值。其函數宣告為int strncmp ( const char * str1, const char * str2, size_t n );功能是把str1 和str2 進行比較,最多比較前 n 個位元組,若str1與str2的前n個字元相同,則傳回0;若s1大於s2,則傳回大於0的值;若s1 小於s2,則傳回小於0的值。
strncmp語法
函數宣告
int strncmp(const char *str1, const char *str2, size_t n)
參數
str1-- 要進行比較的第一個字串。
str2-- 要進行比較的第二個字串。
n-- 要比較的最大字元數。
傳回值
此函數傳回值如下:
如果傳回值 < 0,表示 str1 小於 str2。
如果傳回值 > 0,則表示 str2 小於 str1。
如果傳回值 = 0,則表示 str1 等於 str2。
函數比較
函數strncmp 與函數strcmp極為類似,但函數不完全相同,差異如下:
(1)strncmp函數
用來比較s1和s2字串的前n個字元。如果兩個字串相等的話,strncmp將會回傳0。如果s1是s2的一個子字串的話,s1小於s2。
(2)strcmp函數
同樣用於比較兩個字串,設這兩個字串為str1,str2
若str1==str2,則傳回零;
若str1 > str2,則傳回正數;
若str1< str2,則傳回負數。
即:兩個字串自左向右逐個字元相比(按ASCII值大小相比較),直到出現不同的字元或遇"\0"為止。 [3]
(3)總結
兩者不同之處是,strncmp函數是指定比較size個字符,strcmp函數比較整個字符,直到出現不同的字符或遇"\ 0"為止。
應用範例
範例1
#include <cstring> #include <cstdio> int main(){ char *buf1="aaabbb",*buf2="bbbccc",*buf3="ccc"; int ptr; ptr=strncmp(buf2,buf1,3); if(ptr>0) printf("buffer2 is greater than buffer1\n"); else if(ptr<0) printf("buffer2 is less than buffer1\n"); ptr=strncmp(buf2,buf3,3); if(ptr>0) printf("buffer2 is greater than buffer3\n"); else if(ptr<0) printf("buffer2 is less than buffer3\n"); return 0; }
ouput:
buffer2 is greater than buffer1 buffer2 is less than buffer3
範例2
/*strncmpexample*/ #include<stdio.h> #include<string.h> int main() { char str[][5]={"R2D2","C3PO","R2A6"}; int n; puts("Looking for R2 as tromechdroids..."); for(n=0;n<3;n++) { if(strncmp(str[n],"R2xx",2)==0) { printf("found%s\n",str[n]); } } return0; }
ouput:
Looking for R2 as tromechdroids... foundR2D2 foundR2A6
拓展延伸-PHP中strncmp
函數名稱: strncmp ()
功能:比較字串的前N個字元
用法:
int strncmp(stringstr1,charstr2,intlen);
說明:比較字串str1和str2的大小,如果str1小於str2,回傳值就<0,反之如果str1大於str2,回傳值就>0,如果str1等於str2,回傳值就= 0,len指的是str1與str2的比較的字元數。此函數功能即比較字串str1和str2的前len個字元。 [5]
提示:此函數區分大小寫。
範例:
<?php $str1="Ilikephp!"; $str2="ianfine!"; echo strncmp($str1,$str2,2); ?>
結果為:-1
更多相關知識,請造訪PHP中文網!
以上是strncmp函數用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!