C语言程序设计,输入身份证号码,输出出生年月日期,性别,年龄,要求用三个函数

有没有大神会编一个C语言程序,输入身份证号码,输出出生年月日期,性别,年龄,要求用三个函数,求指教

好久没有用过c了,吃屎一样的难受。以上代码亲测可用。

也是太久没用C了,测试没问题,楼主看看吧

 #include <stdio.h>
#include <string.h>
#include <time.h>

void getBirthDay(char id[],int len){
    printf("出生日期:  ");
    if(len<=15){
        printf("19%c%c . %c%c . %c%c\n",id[6],id[7],id[8],id[9],id[10],id[11]);
    }else{
        printf("%c%c%c%c . %c%c . %c%c\n",id[6],id[7],id[8],id[9],id[10],id[11],id[12],id[13]);
    }

} 

void getAge(char id[],int len){
    time_t t;
    struct tm * lt;
    time (&t);//获取Unix时间戳。
    lt = localtime (&t);//转为时间结构。
    int now=lt->tm_year;//当前年份 
    int birth;
    if(len==15){
        birth=(id[6]-'0')*10+(id[7]-'0');
    }else{
        birth=(id[6]-'0')*1000+(id[7]-'0')*100+(id[8]-'0')*10+(id[9]-'0')-1900;
    }
    printf("年龄:  %d\n",now-birth);
}

void getSex(char id[],int len){
    printf("性别:  ");
    if(len<=15){
        int i=id[14]-'0';
        if(i%2==0){
            printf("女\n ");
        }else{
            printf("男\n ");
        }
    }else{
        int i=id[17]-'0';
        if(i%2==0){
            printf("女\n ");
        }else{
            printf("男\n ");
        }
    }

}

int main(void) { 
    char id[20];
    printf("input the credit id:\n");
    scanf("%s", id);
    //printf("%s\n",id);
    int len=strlen(id);
    if(len==15||len==18){
        getBirthDay(id,len);
        getAge(id,len);
        getSex(id,len);
    }else{
        printf("illeage input");
    }


    return 0;
}

没有做输入格式的验证和循环输入

身份证号码可能获取性别吗?

#include "stdafx.h"
#include"stdio.h"
#include
void Id_chex();
struct info
{
char ID[21];
char name[9];
char birthday[9];
char sex[7];
};

int main()
{

printf("please Enter the number ");
Id_chex();
return 0;

}
void Id_chex()
{
struct info info1 =
{
"600000000000000004",
"zhangsan",
"19910328",
"female"
};
char number[21] = {};
gets_s(number, 21);
char idtemp[21] = {};
for (int i = 0; i < 21; i++)
{
idtemp[i] = info1.ID[i];

}
if (strcmp(number, idtemp) == 0)
{
    printf("查询到身份证信息");
    printf("\n");
    for (int i = 0; i < 21; i++)
    {
        printf("%c", info1.ID[i]);
    }
    printf("\n");
    for (int i = 0; i < 9; i++)
    {
        printf("%c", info1.name[i]);
    }
    printf("\n");
    for (int i = 0; i < 9; i++)
    {
        printf("%c", info1.birthday[i]);
    }
    printf("\n");
    for (int i = 0; i < 7; i++)
    {
        printf("%c", info1.sex[i]);
    }
    printf("\n");
}
else
    printf("没有查询到身份证信息");

}