strncmp

strncmp

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
  • 外文名:strncmp
  • 作用:比較s1和s2字元串
  • 套用:C語言
  • 定義:指定比較size個字元
  • 輸出:負數、0、正數
strncmp語法,函式聲明,參數,返回值,功能比較,套用示例,示例1,示例 2,拓展延伸-PHP中strncmp,

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)總結
兩者不同之處是,strncmp函式是指定比較size個字元,strcmp函式比較整個字元,直到出現不同的字元或遇"\0"為止。

套用示例

示例1

#include<string.h>#include<stdio.h>int main(void){char *buf1="aaabbb",*buf2="bbbccc",*buf3="ccc";int ptr;ptr=strncmp(buf2,buf1,3);if(ptr>0)printf("buffer2 is greater than buffer1\n");elseif(ptr<0)printf("buffer2 is less than buffer1\n");ptr=strncmp(buf2,buf3,3);if(ptr>0)printf("buffer2 is greater than buffer3\n");elseif(ptr<0)printf("buffer2 is less than buffer3\n");return(0);}
ouput:buffer2 is greater than buffer1buffer2 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...foundR2D2foundR2A6

拓展延伸-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個字元。
提示:該函式區分大小寫。
示例:
<?php$str1="Ilikephp!";$str2="ianfine!";echo strncmp($str1,$str2,2);?>
結果為:-1

相關詞條

熱門詞條

聯絡我們