解题思路:
看似简单的题,坑不少。
首先表示星期的为 A 到 G,其次表示时的为A到N, 表示成A到Z就错了。
代码如下:
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cctype>
using namespace std;
char week[7][5] =
{
"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"
};
char s[4][65];
int main()
{
while(scanf("%s", s[0]) == 1)
{
for(int i = 1; i < 4; i++) scanf("%s", s[i]);
int len0 = strlen(s[0]), len1 = strlen(s[1]);
int first = 0;
for(int i = 0; i < len1 && i < len0; i++)
{
if(!first && s[0][i] >= 'A' && s[0][i] <= 'G' && s[0][i] == s[1][i])
{
printf("%s ", week[s[0][i]-'A']);
first = 1;
}
else if(first && s[0][i] == s[1][i])
{
if(s[0][i] >= '0' && s[0][i] <= '9')
{
printf("%02d", s[0][i]-'0');
break;
}
else if(s[0][i] >= 'A' && s[0][i] <= 'N')
{
printf("%d", s[0][i] - 'A' + 10);
break;
}
}
}
int len2 = strlen(s[2]), len3 = strlen(s[3]);
for(int i = 0; i < len2 && i < len3; i++)
if(s[2][i] == s[3][i]&& isalpha(s[2][i])) {printf(":%02d\n", i); break;}
}
return 0;
}