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'是判斷字串結束的、當不滿足條件時就會繼續向下執行

if(str1[i]=='\0'&&str2[i]=='\0')

s=0;

else

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

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

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

c語言 字串,輸入字元,編寫函式dstr將輸入的字元從字串中刪去。要求能調通

給你個參考參考,寫的很不錯的,不過不是我寫的啦 include char dstr char s,char c int main char str 1000 char ch printf 請輸入乙個字串 t gets str printf 請輸入要挖去的字元 t scanf c ch printf ...

C語言如何返回字串,C語言中函式如何返回字串?

1 c語言中,字串不是一種基本型別,其本質是字元陣列,因此直接返回字串是不行的。因為c語言不允許例如 char 10 fun 這樣的函式定義方式。但是可以返回字元指標。返回一個動態分配的記憶體地址。2 例如 char c char getinput int length length 為要輸入字串的...

C語言 編寫函式,由實參傳來字串,統計此字串中字母,數字,空格和其他字元的個數

函式宣告在main的外面,強烈建議直接把函式寫在前面省的宣告了加上字串的標頭檔案string.h。迴圈直接用strlen獲取長度計算,你這樣子看起來太傻了。要返回多個整數的話可以用結構體做返回值,或者用指標 引用 做引數。char ch是指標的意思,初學者不行就用全域性變數。 汽水 char ch,...