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

時間 2021-09-07 13:12:09

1樓:我是一個麻瓜啊

(1)strcmp是比較兩個字串的大小,兩個字串相同時返回0,第一個字串大於第二個字串時返回一個正值,否則返回負值.

(2)比較兩個字串的演算法是:逐個比較兩個串中對應的字元,字元大小按照ascii碼值確定,從左向右比較,如果遇到不同字元,所遇第一對不同字元的大小關係就確定了兩個字串的大小關係,如果未遇到不同字元而某個字串首先結束,那麼這個字串是較小的,否則兩個字串相等。

2樓:匿名使用者

strcmp(s1,s2)

說明:當s1s2時,返回值》0

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

"a"<"b" "a">"a" "computer">"compare"

3樓:

char *str="aaaa",*ch="bbbbb";

if(strcmp(str,ch)>0) //成立就是字串str在字串ch後面

if(strcmp(str,ch)==0) //成立就是字串內容一致

if(strcmp(str,ch)<0) //成立就是字串str在字串ch前面

4樓:往昔

int strcompare(char *s1,char *s2)return (*s1-*s2);

}即把兩個字串相對應的字元拿出來進行比較,返回第一個不等的字元比較的大小即可。c語言系統為使用者提供了庫函式strcmp可以實現以上函式功能。呼叫格式為:strcmp(s1,s2);

teacher 和teaching,第一個不等的字元是teacher的e和teaching的i,所以teaching大

c語言中strcmp字串比較函式的判斷標準是什麼呀?

5樓:匿名使用者

格式: strcmp(字元陣列名1,字元陣列名2)功能:按照ascii碼順序比較兩個陣列中的字串版,並由函式返回權值返回比較結果。

字串1=字串2,返回值=0;

字串1〉字串2,返回值〉0;

字串1〈字串2,返回值〈0。

本函式也可用於比較兩個字串常量,或比較陣列和字串常量。

follow me大

其實只判斷f比c大就完了。

6樓:visr_午夜

strcmp(str1,str2)函式是比較兩個字串的函式:

設這兩個字串為str1,str2,

若str1==str2,則返回零;

若str1>str2,則返回正e68a8462616964757a686964616f31333337616537數;

若str1s2時,返回正數;

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

"a"<"b" "a">"a" "computer">"compare"

特別注意:strcmp(const char *s1,const char * s2)這裡面只能比較字串,即可用於比較兩個字串常量,或比較陣列和字串常量,不能比較數字等其他形式的引數。

ansi標準規定,返回值為正數,負數,0 。而確切數值是依賴不同的c實現的。

所以:用它比較follow me和computer design的話,它會只比較f與c這兩個字串的首元素的大小,所以follow me 比較大。

7樓:羽葉綠

computer design大,用asc碼向後判斷,遇到不相等的輸出結果

c語言問題:不用strcmp函式比較兩個字串的大小

8樓:問明

#include

#define n 80

void cmp(char a[n],char b[n])int i=0;

char *p1=a,*p2=b;

while(*(p1+i)==*(p2+i)&&*(p1+i)!='\0')

i++;

if(*(p1+i)>*(p2+i))

printf("%s>%s\n",p1,p2);

else if(*(p1+i)<*(p2+i))printf("%s<%s\n",p1,p2);

else

printf("%s=%s\n",p1,p2);

int main()

char a[n]=,b[n]=;

char c[n]=,d[n]=;

char e[n]=,f[n]=;

cmp(a,b);

cmp(c,d);

cmp(e,f);

return 0;

執行效果:

9樓:匿名使用者

#include

int main()}

c語言兩個字串比較大小的問題,不使用strcmp函式

10樓:問明

#include

#define n 80

void cmp(char a[n],char b[n])int i=0;

char *p1=a,*p2=b;

while(*(p1+i)==*(p2+i)&&*(p1+i)!='\0')

i++;

if(*(p1+i)>*(p2+i))

printf("%s>%s\n",p1,p2);

else if(*(p1+i)<*(p2+i))printf("%s<%s\n",p1,p2);

else

printf("%s=%s\n",p1,p2);

int main()

char a[n]=,b[n]=;

char c[n]=,d[n]=;

char e[n]=,f[n]=;

cmp(a,b);

cmp(c,d);

cmp(e,f);

return 0;

執行效果:

11樓:

看了也試了、沒什麼問題

不過不用加標頭檔案string.h

while((str1[i]==str2[i])&&(str1[i]!='\0')) i++;

這是說兩個字串從首位字元開始比較、如果相比較的兩個字元相等且第一個字串沒有到結尾、那麼要比較的字元各向後移動一位、str1[i]!='\0'是判斷字串結束的、當不滿足條件時就會繼續向下執行

s=0;

else

s=str1[i]-str2[i];

如果是由於第一個字串結束而跳出上面的迴圈、判斷第二個字串是否也結束了、

也就是判斷下是不是兩個字串同時結束、如果是、s=0、不是、s為兩個字元相差的ascii碼

c語言,字串,C語言中,字串是什麼?

c語言中,字串是什麼?位操作運算都只能是整形或字元型,字元型實際是單位元組整形。包括以下幾個操作符 按位與 按位或。按位異或。左移 右移 另外還有一個取餘操作 a b的意思是,a除以b,取餘數。這個是c語言的硬性規定,位操作都是正數按照二進位制進行表達的時候才有的概念 而取餘操作是整數相除得餘數,餘...

c語言刪除字串中的字元,C語言 刪除字串中指定的字元

受災 這個容易,就是把指定位置的字元去掉,也就是說後面的字元覆蓋比如刪除指定的字元在字串中第一個出現的位置void strdel char str,char ch if p 希望能解決您的問題。 微俊 include include int main s i 0 printf input a cha...

c語言反轉字串怎麼反轉,C語言反轉字串怎麼反轉?

讀取字串,瀏覽字串每一個字元,如果是空格就輸出空格,否則就儲存當前位置,從當前位置移動到下一個空格或字元尾前,從當前位置開始反向輸出,直達回到儲存的位置最後輸出回車,結束 以下是c語言版的,需要的話,可以看看 include include include define string maxsize...