1061 Dating (20分)

  1. 发现了个函数isalpha / isdigit ,刚开始一直写的是>'A'这种
  2. string week[7] = { "MON ", "TUE ", "WED ","THU ","FRI " ,"SAT ","SUN " }; week[time[0] - 65];
  3. printf("%02d", pos);对输出格式控制
//#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<string>
using namespace std;

int main()
{
	//freopen("input.txt","r", stdin);

	string s1, s2, s3, s4;
	cin >> s1 >>s2 >>s3 >>s4;

	char time[2];

	int length = s1.length() < s2.length() ? s1.length(): s2.length();//选择短的

	int flag = 0;
	for (int i = 0; i < length; i++)
	{
		if (flag == 1 && s1[i] == s2[i] && ('A' <= s1[i] && s1[i] <= 'N' || isdigit(s1[i])))
		{
			time[1] = s1[i];
			break;
		}
		if (s1[i] == s2[i] && 'A' <= s1[i] && s1[i]<= 'G')
		{
			time[0] = s1[i];
			flag++;
		}
	}

	length = s3.length() < s4.length() ? s3.length() : s4.length();//选择短的
	int pos;
	for (int i = 0; i < length; i++)
	{
		if (s3[i] == s4[i] && isalpha(s3[i]))
		{
			pos = i;
			break;
		}
	}

	string week[7] = { "MON ", "TUE ", "WED ","THU ","FRI " ,"SAT ","SUN " };
	cout << week[time[0] - 65];


	if ('A' <= time[1] && time[1] <= 'N') 
		printf("%02d:",(int)(10 + (int)(time[1] - 65)));
	else printf("0%c:", time[1]);

	printf("%02d",  pos);

	return 0;
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐