c 中strcmp函式怎麼使用

時間 2021-10-14 21:56:17

1樓:韌勁

int strcmp(char *src,char *dst)

函式功能:

比較兩個字串是否相等。

函式解析:

這個函式,在vc的庫函式中的定義如下:

int __cdecl strcmp (

const char * src,

const char * dst

)我們需要留意的是這個函式的迴圈部分,

while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)

++src, ++dst;

vc的庫函式似乎非常喜歡在while迴圈的判斷條件中做一些處理(strcpy等函式的定義中也可看到這樣的迴圈語句),下面我們來分析一下這樣做的妙處。

首先,在第一次進行迴圈條件的判定之前,不管這個迴圈條件是否滿足,都會執行一次這個處理(用src的值減去dst的值)。這和do~while迴圈有一定的相似性。

dowhile( (0=ret) && *dst );

再者,它又比do~while迴圈多做了一次處理。當迴圈的最後一次條件判斷,不滿足迴圈條件時,do~while直接跳出了,而將處理寫在判斷條件中,在最後一次判斷條件不滿足時也會做一次處理。因為將處理內容放在while迴圈的判斷條件中時,是先做處理,再做判斷,然後才使變數遞增;而do~while迴圈的順序是先做處理,再做變數遞增,最後做條件判斷(迴圈比前者少做了一次);while迴圈的順序是先做判斷,再做處理,最後做變數遞增。

這中間的順序不同導致的迴圈次數不同,功能執行語句執行的次數也各不相同。

strcmp — 二進位制安全字串比較

說明int strcmp( string $str1 , string $str2 )

注意該比較區分大小寫。

引數str1第一個字串。

str2第二個字串。

返回值如果 str1小於 str2,返回負數;如果 str1大於 str2,返回正數;二者相等則返回 0。(相等時返回0)

示例:<?php

$var1="hello";

$var2="hello";

if(strcmp($var1,$var2)==0)

else

?>

strcasecmp — 二進位制安全比較字串(不區分大小寫)

int strcasecmp(string$str1,string$str2)

str1

第一個字串。

str2

第二個字串。

返回值: 如果 str1 小於 str2 返回 < 0; 如果 str1 大於 str2 返回 > 0;如果兩者相等,返回 0。

示例 :

<?php

$var1="hello";

$var2="hello";

if(strcasecmp($var1,$var2)==0)?

2樓:匿名使用者

原型:extern int strcmp(const char *s1,const char * s2);

用法:#include 功能:比較字串s1和s2。

一般形式:strcmp(字串1,字串2)說明: 當s1s2時,返回值》0

即:兩個字串自左向右逐個字元相比(按ascii值大小相比較),直到出現不同的字元或遇'\0'為止。如: "a"<"b" "a">"a" "computer">"compare"

特別注意:strcmp(const char *s1,const char * s2)這裡面只能比較字串,不能比較數字等其他形式的引數。

3樓:

strcmp

syntax:

#include

int strcmp( const char *str1, const char *str2 );

the function strcmp() compares str1 and str2, then returns:

return value explanation

less than 0 str1 is less than str2

equal to 0 str1 is equal to str2

greater than 0 str1 is greater than str2

for example:

printf( "enter your name: " );

scanf( "%s", name );

if( strcmp( name, "mary" ) == 0 )

printf( "hello, dr. mary!\n" );

4樓:匿名使用者

strcmp函式 有兩個引數,一個是陣列1,一個是陣列2;形式為:strcmp(a,b);

其結果可以是1、0、-1;如果a陣列asc碼值大於b陣列,則為1;如果a陣列asc碼值小於b陣列,則為-1;如果a陣列asc碼值等於b陣列,則為0.

5樓:秋梵冬萱

就是對兩個字串從左到右逐個字元相比,按ascii值大小比較,如果出現不同字元或遇到'\0'為止,如果全部字元相等;則認為相等,如果不相等的,按第一個不相等的字元的比較結果為準,

如strmp(str,str),則函式值為0,如果strmp(stra,strb)因為a的askii小於b的,所以函式值為一個負數。

6樓:前縈懷

#include

#include

void main()

7樓:匿名使用者

樓上諸位請注意那些是c語言的用法,樓主提問的是c plusplus。。。

c++中strcmp函式怎麼使用?

8樓:笑嘆擺渡人兒

voidstrcopy(char*str1,constchar*str2)

for(int i=0;str2[i]!'\0';i)

str1[i]=str2[i];}

str1[i]='\0';}

int strlenth(constchar*str1)

for(int i=0;str1[i]!'\0';i)return+i;}

一、strcmp函式strcmp函式是比較兩個字串的大小,返回比較的結果。一般形式是:

i=strcmp(字串,字串);其中,字串1、字串2均可為字串常量或變數;

i 是用於存放比較結果的整型變數。

比較結果是這樣規定的:

①字串1小於字串2,strcmp函式返回一個負值;

②字串1等於字串2,strcmp函式返回零;

③字串1大於字串2,strcmp函式返回一個正值;

二、strcpy函式strcpy函式用於實現兩個字串的拷貝。

一般形式是:strcpy(字元中1,字串2)

c++的strcmp函式是什麼意思?下面一段程式輸出的結果是什麼?請教高手!

9樓:

cmp=compare比較的意思,str=stringstrcmp就是字串比較

x1++後指向"b" x2++後也是指向"b"

不過x1是指向“bcdef”,x2是"b"

所以結果是1

10樓:匿名使用者

直接敲**執行就知道它的功能了

11樓:匿名使用者

strcmp 用於字串比較。 如果返回值==0 完全匹配, >0部分匹配, -1, 完全不匹配

上面返回值應該是1,只有一個字元b匹配

c語言字串比較函式strcmp是什麼意思

我是一個麻瓜啊 1 strcmp是比較兩個字串的大小,兩個字串相同時返回0,第一個字串大於第二個字串時返回一個正值,否則返回負值.2 比較兩個字串的演算法是 逐個比較兩個串中對應的字元,字元大小按照ascii碼值確定,從左向右比較,如果遇到不同字元,所遇第一對不同字元的大小關係就確定了兩個字串的大小...

c怎麼使用PostMessage函式模擬按鍵輸入啊

dllimport user32.dll static extern bool postmessage int hwnd,int msg,uint wparam,uint lparam 引數說明 int hwnd,int msg,uint wparam,uint lparam 第一引數是記事本的視窗...

c 中可以直接使用對數函式嗎

八哥說科技 c 中不可以直接使用對數函式,需要引入標頭檔案 math.h,使用c c 語言中的數學函式log 函式來表示。自然對數以常數e為底數的對數。記作lnn n 0 在物理學,生物學等自然科學中有重要的意義。一般表示方法為lnx。數學中也常見以logx表示自然對數。log是c語言中的數學函式,...