在C語言中比較字符串大小,可以使用庫函數(shù)strcmp,也可以自己編寫比較函數(shù)。
10多年的留壩網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。網(wǎng)絡營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整留壩建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“留壩網(wǎng)站設計”,“留壩網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
1、使用庫函數(shù)。
需要包含頭文件string.h。聲明為:
int strcmp(const char *s1, const char *s2);
會根據(jù)字典序比較s1和s2, 如果二者相等,則返回0;如果s1較小則返回-1;如果s1較大則返回1。
比如
strcmp("123", "123") 結(jié)果為0。
strcmp("123", "456") 結(jié)果為-1。
strcmp("456", "123") 結(jié)果為1。
2、自定義函數(shù)。
實現(xiàn)字符串比較的方法有很多,其基本原理為按字節(jié)比較。
舉例如下:
int?my_strcmp(char?*s1,?char?*s2)
{
int?i;
for(i?=?0;?s1[i]?==?s2[i]??s1[i]!=0;?i++);//循環(huán)比較,達到結(jié)束或者出現(xiàn)不相等值時退出循環(huán)。?
if(s1[i]?==?s2[i])?return?0;//代表全部相等,返回0
if(s1[i]s2[i])?return?-1;//s1較小,返回-1。
return?1;//s1較大,返回1.
}
代碼如下:
#include?stdio.h
#include?stdlib.h
int?max(int?a,?int?b)?
{
return?a??b???a?:?b;
}
int?main()
{
int?i,?m,?n;
scanf("%d",?m);
for?(i?=?1;?i??8;?i++)?{
scanf("%d",?n);
m?=?max(m,?n);
}
printf("最大數(shù):%d\n",?m);
system("pause");
return?0;
}
運行結(jié)果:
#includelt;stdio.hgt;
#define N 100
int input(char*a,char*b)//輸入兩個字符串
{
printf("Input the first information:\n");
fgets(a,N,stdin);
printf("Input the secend information:\n");
fgets(b,N,stdin);
}
int my_strcmp(char*a,char*b)//比較字符串每個字符的大小
{
while((*a!='\0')(*b!='\0'))
{
if(*agt;*b)
{
return 0;
}
else if(*alt;*b)
{
return 1;
}
else
{
a++;
b++;
}
}
if((*a=='\0')(*b!='\0'))//字符串b比字符串a(chǎn)長
{
return 1;
}
else if((*a!='\0')(*b=='\0'))//字符串a(chǎn)比字符串b長
{
return 0;
}
else
{
return 2;
}
}
int main()
{
char a[N]={0};
char b[N]={0};
int net2=0;
input(a,b);//調(diào)用輸入函數(shù)
net2=my_strcmp(a,b);//調(diào)用比較大小函數(shù)
if(0==net2)//輸出大小
{
printf("agt;b\n");
}
else if(1==net2)
{
printf("alt;b\n");
}
else
{
printf("a=b\n");
}
return 0;
}
擴展資料:
一、return在函數(shù)中的作用
我們?nèi)绻麑⒑瘮?shù)看做一個加工廠,參數(shù)就是我們向加工廠投入的原料,具體的函數(shù)功能實際上就是加工的過程,而return語句代表返回值,就是加工廠在實現(xiàn)加工之后給“投資人”的成品。
二、return語句的特點
1、在函數(shù)當中,遇到return語句之后就意味著函數(shù)運行的結(jié)束,在此之后的代碼是不運行的。
2、它不支持任何運算也沒有任何內(nèi)建方法,和任何其他的數(shù)據(jù)類型比較是否相等時永遠返回false,也可以將None賦值給任何變量。
3、執(zhí)行到return語句時,會退出函數(shù),return之后的語句不再執(zhí)行。但將return語句放在try語句塊中,是個例外。
三、return的默認值:return函數(shù)默認的返回值為undefined。
從左向右逐個字符進行比較。比較原則為空格最小,數(shù)字大寫字母小寫字母。
同為數(shù)字、大寫字母、小寫字母則'0''9'、'A''Z'、'a''z'。
若有比較結(jié)果為二個字符不相等,則二個字符串的比較結(jié)束。字符比較大小的結(jié)果,就是字符串大小比較的結(jié)果。
如果二個字符串的前若干個字符逐一對應相同,字符串長度也相同,則兩個字符串相等。
如果二個字符串的前若干個字符逐一對應相同,字符串長度不相同,則較長的那個字符串為大。
使用函數(shù)strcmp(s1,s2),需要包含頭文件string.h
若結(jié)果為正,表示s1s2;
若結(jié)果為負,表示s1s2;
若結(jié)果為0,表示s1==s2;