这个题目不难,但是要注意的点还是挺多的,主要就是注意找到相同的字符,记录变量后要及时break,另外有个i++需要注意,在下面代码注释有说到。
#include <stdio.h>
#include <string.h>
char week[][5]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
int main(int argc, char const *argv[])
{
char s1[65],s2[65],s3[65],s4[65];
scanf("%s%s%s%s",s1,s2,s3,s4);
int len1 = strlen(s1);
int len2 = strlen(s2);
int len3 = strlen(s3);
int len4 = strlen(s4);
int day = -1,h = -1,m = -1;//记录三个变量
for(int i=0;i<len1&&i<len2;i++){
if(s1[i]==s2[i] && s1[i]>='A'&&s1[i]<='G'&&day==-1){
day = s1[i]-'A';
i++; //为了避免下面的if跟这个if操作的是同一个i
}
if(day>=0 &&s1[i]==s2[i]){
if(s1[i]>='0'&&s1[i]<='9')h = s1[i]-'0';
else if(s1[i]>='A'&&s1[i]<='N')h = 10+s1[i]-'A';
}
if(h>=0)break;//找到了就break,避免后面的覆盖已经找到的,下同
}
for(int i=0;i<len3&&i<len4;i++){
if(s3[i]==s4[i]){
if((s3[i]>='A'&&s3[i]<='Z')||(s3[i]>='a'&&s3[i]<='z')){
m = i;
break;
}
}
}
printf("%s %02d:%02d",week[day],h,m);//按格式输出
return 0;
}