#include <stdio.h>
#include <string.h>
int main(){
char A[60],B[60],C[60],D[60];
scanf("%s\n%s\n%s\n%s\n",&A,&B,&C,&D);
char *week[] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};
int w,h,m,flag = 0;//flag用来计数
//判断星期几和小时
for(int i = 0;i <= strlen(A); i++){
if((A[i] == B[i])&&(A[i]>='A'&&A[i]<='G') && flag == 0){ //注意>=和<=
w = A[i] - 'A';
flag = 1;
continue;
}
if(A[i] == B[i] && flag == 1){
if(A[i] >= '0' && A[i] <= '9'){
h = A[i]- '0';
break; //遇到第二个相同字符,立即退出
}
if(A[i] >= 'A' && A[i] <= 'N'){
h = A[i] - 'A' + 10;
break;
}
}
}
//判断分钟
for(int j = 0;j <= strlen(C); j++){
if((C[j] >= 'a' && C[j] <= 'z')||(C[j] >= 'A' && C[j] <= 'Z')){
if(C[j] == D[j]){
m = j;
break;
}
}
}
//输出
if(h<10&&m<10) printf("%s 0%d:0%d",week[w],h,m);
else if(h<10) printf("%s 0%d:%d",week[w],h,m);
else if(m<10) printf("%s %d:0%d",week[w],h,m);
else printf("%s %d:%d",week[w],h,m);
return 0;
}
该题也可以利用switch-case语法解决。相对容易。