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

時間 2021-08-11 18:09:12

1樓:問明

#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;

執行效果:

2樓:

看了也試了、沒什麼問題

不過不用加標頭檔案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語言問題:不用strcmp函式比較兩個字串的大小

3樓:問明

#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;

執行效果:

4樓:匿名使用者

#include

int main()}

有兩個字串,利用函式實現兩個字串的連結,兩個字串比較大小,計算兩個字串的長度,將第二個字元

5樓:_葉子妞妞

char * mystrcat(char *str1, char *str2)

int   mystrcmp(const   char   *   src, const   char   *   dst   )

int mystrlen(const char *str)return len;

}char * mystrcpy (char * dst, char * src)

6樓:在晴天的雨傘

#include

void conectstring(char str1,char str2,char str)

void main()

編寫C語言函式,比較兩個字串的大小

城凝慶偉博 include define n100 intinput char a,char b 輸入兩個字串 intmy strcmp char a,char b 比較字串每個字元的大小 else if a b else if a 0 b 0 字串b比字串a長 else if a 0 b 0 字串...

c語言中如何判斷兩個字串完全相等

兆憐翠 用字元比較函式,做個for迴圈判斷即可,字串比較函式strcmp 格式strcmp a,b 0 a b strcmp a,b 0 a0 a ba,b均為字串! include bool isequal char str1,char str2 return true int main 在資料結...

比較兩個字串的大小(用陣列a,b,如果a大於b,輸出1如果a小於b,輸出 1如果a等於b,輸出0 )

字串比較用函式 strcmp。char a 80 b 80 printf please enter string a n gets a printf please enter string b n gets b if strcmp a,b 0 printf 0 else if strcmp a,b ...