在有结构体struct birth { int year; int month; int day; }birth; struct person { char ID[19]; char name[20]; struct birth birthday; 使用struct birth get_birth(char *ID)函数从身份证号中提取出生年、月、日的函数。其参数 ID 代表一个身份证号,返回对应的birth结构体。
时间: 2024-03-31 12:37:03 浏览: 44
身份证号里获取出生年月
可以使用如下代码实现`get_birth`函数从身份证号中提取出生年、月、日:
```c
struct birth get_birth(char *ID) {
struct birth birthday;
memset(&birthday, 0, sizeof(struct birth)); // 将birthday结构体初始化为0
// 提取出生年
birthday.year = (ID[6] - '0') * 1000 + (ID[7] - '0') * 100 + (ID[8] - '0') * 10 + (ID[9] - '0');
// 提取出生月
birthday.month = (ID[10] - '0') * 10 + (ID[11] - '0');
// 提取出生日
birthday.day = (ID[12] - '0') * 10 + (ID[13] - '0');
return birthday;
}
```
上述代码中,首先定义了一个`struct birth`类型的结构体变量`birthday`,并将其初始化为0。然后,通过字符串下标访问身份证号码中相应的位数,将其转换为整型数值,得到出生年、月、日的数值,并存储在`birthday`结构体相应的成员变量中。最后,返回`birthday`结构体,以便在程序中使用该结构体来表示出生日期信息。
需要注意的是,在实际应用中,需要对输入的身份证号进行一些基本的合法性检查,例如判断身份证号的长度、格式、校验码等信息,以确保其正确性和合法性。
阅读全文