-
strncmp
鎖定
- 中文名
- strncmp
- 外文名
- strncmp
- 作 用
- 比較s1和s2字符串
- 應 用
- C語言
- 定 義
- 指定比較size個字符
- 輸 出
- 負數、0、正數
strncmpstrncmp語法
strncmp函數聲明
int strncmp(const char *str1, const char *str2, size_t n)
strncmp參數
- str1-- 要進行比較的第一個字符串。
- str2-- 要進行比較的第二個字符串。
strncmp返回值
該函數返回值如下:
- 如果返回值 < 0,則表示 str1 小於 str2。
- 如果返回值 > 0,則表示 str2 小於 str1。
strncmp功能比較
函數 strncmp 與函數strcmp極為類似,但功能不完全相同,區別如下:
(1)strncmp函數
用來比較s1和s2字符串的前n個字符。如果兩個字符串相等的話,strncmp將返回0。如果s1是s2的一個子串的話,s1小於s2。
(2)strcmp函數
同樣用於比較兩個字符串 ,設這兩個字符串為str1,str2
若str1==str2,則返回零;
若str1 > str2,則返回正數;
若str1< str2,則返回負數。
(3)總結
兩者不同之處是,strncmp函數是指定比較size個字符,strcmp函數比較整個字符,直到出現不同的字符或遇"\0"為止。
strncmp應用示例
strncmp示例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
strncmp示例 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
strncmp拓展延伸-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