A19860. 日期描述在一份入学名册当中,学员的出生日期出现了两种格式,如下:年-月-日 月/日/年而且对于1位数的月份或1位数的日数,数字有的在数字前补0,例如03,有的没有,例如3下面是一些例子2001-05-072002-7-147/3/200507/25/2004现要求将给定的日期,提取年、月、日按统一的如下格式输出:year=xxxxmonth=xxday=xx(x代表数字,第一个非零数字前面的零不…
填空题
容易
知识点
题目描述
日期
描述
在一份入学名册当中,学员的出生日期出现了两种格式,如下:
年-月-日 月/日/年
而且对于1位数的月份或1位数的日数,数字有的在数字前补0,例如03,有的没有,例如3
下面是一些例子
2001-05-07
2002-7-14
7/3/2005
07/25/2004
现要求将给定的日期,提取年、月、日按统一的如下格式输出:
year=xxxx
month=xx
day=xx
(x代表数字,第一个非零数字前面的零不需要输出)
输入格式
第一行一个正整数T(T 不超过10),为后面需要处理的日期个数此后T行,每行一个日期
输出格式
对于每一个日期,输出三行,分别为
year=xxxx
month=xx
day=xx
每一个日期输出完毕,输出一个空行
输入样例
4
2001-05-07
2002-7-14
7/3/2005
07/25/2004输出样例
year=2001
month=5
day=7
year=2002
month=7
day=14
year=2005
month=7
day=3
year=2004
month=7
day=25参考答案
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int main(int argc, char *argv[])
{
int n,i,year,month,day;
char ymd[12][12];
cin>>n;
for(i=1;i<=n;i++)cin>>ymd[i];
for(i=1;i<=n;i++){
if (strstr(ymd[i],"-"))
sscanf(ymd[i],"%d-%d-%d",&year,&month,&day);
else
sscanf(ymd[i],"%d/%d/%d",&month,&day,&year);
printf("year=%d\nmonth=%d\nday=%d\n\n",year,month,day);
}
return 0;
}
上一题
下一题