7-3 从身份证号码中提取出出生年月 (15 分)

输入一个18位的身份证号码,提取出年份和月份并输出,请判断输入的号码是否是18位,如果不是请提示"Invalid data,input again!",并重新输入新的号码。
输入格式:
输入一个18位的身份证号码。

输出格式:
在一行中输出出生年和月份,中间用逗号分隔,最后换行。

输入样例1:

370303200008161771
结尾无空行

输出样例1:

2000,08

结尾无空行
输入样例2:

37030320012311771
370303200712311771
结尾无空行

输出样例2:

Invalid data,input again!
2007,12
结尾无空行

#include<stdio.h>
#include<string.h>
int main()
{
char b[20];
int f=0;
while(f!=2)
{
if(f==1)
{
printf("\n");
}
gets(b);
int i,c=0;
c = strlen(b);
if(c!=18)
{
printf("Invalid data,input again!");
f=1;
}
else
{
for(i=6;i<10;i++)
{
printf("%c",b[i]);
}
printf(",");
for (i =10;i<12;i++)
{
printf("%c",b[i]);
}
f=2;
}

}

}