strncmp函數用法詳解

藏色散人
發布: 2020-07-07 11:46:12
原創
6248 人瀏覽過

strncmp函數為字串比較函數,其函數語法為“int strncmp ( const char * str1, const char * str2, size_t n );”,功能是把str1和str2進行比較。

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語法

函數宣告

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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板