您好,登錄后才能下訂單哦!
如何使用strncmp函數?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
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
關于如何使用strncmp函數問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。