题目
小强在统计一个小区里居民的出生年月,但是发现大家填写的生日格式不统一,例如有的人写 199808
,有的人只写 9808
。有强迫症的小强请你写个程序,把所有人的出生年月都整理成 年年年年-月月
格式。对于那些只写了年份后两位的信息,我们默认小于 22
都是 20
开头的,其他都是 19
开头的。
输入格式:
输入在一行中给出一个出生年月,为一个 6 位或者 4 位数,题目保证是 1000 年 1 月到 2021 年 12 月之间的合法年月。
输出格式:
在一行中按标准格式 年年年年-月月
将输入的信息整理输出
代码
#include<stdio.h>
#include<string.h>
void format(char *a);
int main()
{
char a[10];
scanf("%s",a);//C语言不允许直接将字符数组转换为整数。
format(a);
return 0;
}
void format(char *a)
{
int year,moth;
if(strlen(a)>4)//四.字符串长度函数strlen(s1),如果长度大于四则证明输入的为6位
{
sscanf(a,"%4d%2d",&year,&moth);//sscanf函数从字符串读取数据成格式化形式
printf("%d-%02d",year,moth);//%02d格式说明符,确保有两位,否则用0填充
}else
{
sscanf(a,"%2d%2d",&year,&moth);
if(year<22)
{
printf("20%02d-%02d",year,moth);
}else{
printf("19%d-%02d",year,moth);
}
}
}
注意
sscanf函数(),strlen()字符串长度函数