测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题