2 回答

TA貢獻1802條經驗 獲得超10個贊
//這里要理解stramp函數,原型是 int strcmp(char *str1,char *str2),這個實現字符串的對比,先用str1里面第一個字母減去str2里面的第一個字母得到一個ACII值,判斷若該值大于0就返回1,若小于0就返回-1,若等于0就繼續用各字符串里德第2,第3個字母相減,知道結束符\0為止就認為2個字符串時相同的,返回0
//這里b的值為98,m=109,所以strcmp(str[0],str[1])>0,第一個if不執行,執行else ,string="m",然后strcmp(str[2],string),a-m<0,不執行
//最后輸出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");//如果執行這個if語句就會輸出1
} else strcpy(string,str[1]); if(strcmp(str[2],string)>0)
{ strcpy(string,str[2]);
printf("2\n");//如果執行這個if語句就會輸出2
} printf("%s\n",string);}

TA貢獻1783條經驗 獲得超4個贊
也許你迷惑的地方:gets(數組名):假如字符數組的長度為9,當從鍵盤輸入字符串時,gets函數最多只能接收8個字符,因為系統要在字符串末尾加上'\0'。當輸出字符串時,遇見'\0'就停止輸出,而strcpy在使用時要連'\0'一起復制。
- 2 回答
- 0 關注
- 179 瀏覽
添加回答
舉報