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 关注
- 153 浏览
添加回答
举报