0. 重点
<cctype>的使用:<cctpye>
int isalnum(int c);
int isalpha(int c);
int isblank(int c);
int iscntrl(int c);
int isdigit(int c);
int isgraph(int c);
int islower(int c);
int isprint(int c);
int ispunct(int c);
int isspace(int c);
int isupper(int c);
int isxdigit(int c);
int tolower(int c);
int toupper(int c);
1. 题目
2. 分析
涉及到字母范围的判断,是否为数字的判断,以及输出是格式控制符的方法
%02d
:表示制定宽度为2,并制定用"0"补齐
3. 代码
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
int main(int argc, char **argv)
{
string a, b, c, d;
cin >> a >> b >> c >> d;
char t[2];
int i = 0, flag = 1, bit = -1;
while (i < a.length() && i < b.length())
{
if (flag)
{
if (a[i] == b[i] && (a[i] >= 'A' && a[i] <= 'G'))
{
t[0] = a[i];
flag = 0;
}
}
else
{
if (a[i] == b[i] && ((a[i] >= 'A' && a[i] <= 'N') || isdigit(a[i])))
{
t[1] = a[i];
break;
}
}
i++;
}
for (int i = 0; i < c.length() && i < d.length(); i++)
{
if (c[i] == d[i] && isalpha(c[i]))
bit = i;
}
string week[7] = {"MON ", "TUE ", "WED ", "THU ", "FRI ", "SAT ", "SUN "};
cout << week[t[0] - 'A'];
printf("%02d:", isdigit(t[1]) ? (t[1] - '0') : (t[1] - 'A' + 10));
printf("%02d", bit);
return 0;
}