分数 12
作者 崔孝凤
单位 山东理工大学
输入一个18位的身份证号码,提取出年份和月份并输出,请判断输入的号码是否是18位,如果不是请提示"Invalid data,input again!",并重新输入新的号码。
输入格式:
输入一个18位的身份证号码。
输出格式:
在一行中输出出生年和月份,中间用逗号分隔,最后换行。
输入样例1:
370303200008161771
输出样例1:
2000,08
输入样例2:
37030320012311771
370303200712311771
输出样例2:
Invalid data,input again!
2007,12
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include<stdio.h>
#include<string.h>
void year_month(char s[],char t[]){ //这边运用指针来实现截取段复制
int i=6,j=0;
for(i=6;i<10;i++,j++){t[j]=s[i];
}
j=4;
t[j]=',';
j=5;
for(i=10;i<12;i++,j++){t[j]=s[i]; }
}int main(){char s[1000],t[1000];
while(gets(s)!=NULL){if(strlen(s)==18){year_month(s,t);puts(t);}
else printf("Invalid data,input again!\n");}
return 0;
}
12.11