为了账号安全,请及时绑定邮箱和手机立即绑定

若输入 bcdefgh、m、abcdefg 输出结果为()

若输入 bcdefgh、m、abcdefg 输出结果为()

C
慕勒3428872 2023-03-04 18:14:03
#include<stdio.h>#include<string.h>main(){ int i; char string[20],str[3][20]; for(i=0;i<3;i++) gets(str[i]); if(strcmp(str[0],str[1])>0) strcpy(string,str[0]); else strcpy(string,str[1]); if(strcmp(str[2],string)>0) strcpy(string,str[2]); printf("%s",string);}
查看完整描述

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);}


查看完整回答
反对 回复 2023-03-08
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

也许你迷惑的地方:gets(数组名):假如字符数组的长度为9,当从键盘输入字符串时,gets函数最多只能接收8个字符,因为系统要在字符串末尾加上'\0'。当输出字符串时,遇见'\0'就停止输出,而strcpy在使用时要连'\0'一起复制。

查看完整回答
反对 回复 2023-03-08
  • 2 回答
  • 0 关注
  • 153 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信