2 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
//這里要理解stramp函數(shù),原型是 int strcmp(char *str1,char *str2),這個(gè)實(shí)現(xiàn)字符串的對(duì)比,先用str1里面第一個(gè)字母減去str2里面的第一個(gè)字母得到一個(gè)ACII值,判斷若該值大于0就返回1,若小于0就返回-1,若等于0就繼續(xù)用各字符串里德第2,第3個(gè)字母相減,知道結(jié)束符\0為止就認(rèn)為2個(gè)字符串時(shí)相同的,返回0
//這里b的值為98,m=109,所以strcmp(str[0],str[1])>0,第一個(gè)if不執(zhí)行,執(zhí)行else ,string="m",然后strcmp(str[2],string),a-m<0,不執(zhí)行
//最后輸出m下邊程序是在vc6.0下寫的,可以直接編譯,看注釋很好理解#include<stdio.h>#include<string.h>
;
main(){ int i;char string[20],str[3][20]={"bcdefgh","m","abcdefg"};printf("%d\n",strcmp(str[0],str[1])); if(strcmp(str[0],str[1])>0)
{
strcpy(string,str[0]);
printf("1\n");//如果執(zhí)行這個(gè)if語(yǔ)句就會(huì)輸出1
} else strcpy(string,str[1]); if(strcmp(str[2],string)>0)
{ strcpy(string,str[2]);
printf("2\n");//如果執(zhí)行這個(gè)if語(yǔ)句就會(huì)輸出2
} printf("%s\n",string);}

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個(gè)贊
也許你迷惑的地方:gets(數(shù)組名):假如字符數(shù)組的長(zhǎng)度為9,當(dāng)從鍵盤輸入字符串時(shí),gets函數(shù)最多只能接收8個(gè)字符,因?yàn)橄到y(tǒng)要在字符串末尾加上'\0'。當(dāng)輸出字符串時(shí),遇見'\0'就停止輸出,而strcpy在使用時(shí)要連'\0'一起復(fù)制。
- 2 回答
- 0 關(guān)注
- 171 瀏覽
添加回答
舉報(bào)