使用struct birth get_birth(char *ID)函数从身份证号中提取出生年、月、日的函数。其参数 ID 代表一个身份证号,返回对应的birth结构体。
时间: 2024-03-24 16:40:20 浏览: 60
好的,以下是一个示例代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
int year;
int month;
int day;
} birth;
birth get_birth(char *ID) {
birth result;
// 对身份证号进行解析,提取出生年月日
char year_str[5], month_str[3], day_str[3];
strncpy(year_str, ID + 6, 4);
strncpy(month_str, ID + 10, 2);
strncpy(day_str, ID + 12, 2);
year_str[4] = '\0';
month_str[2] = '\0';
day_str[2] = '\0';
// 将字符串转换为整数
result.year = atoi(year_str);
result.month = atoi(month_str);
result.day = atoi(day_str);
return result;
}
int main() {
char ID[19];
printf("请输入身份证号:");
scanf("%s", ID);
birth b = get_birth(ID);
printf("出生年月日:%d年%d月%d日\n", b.year, b.month, b.day);
return 0;
}
```
在上面的代码中,我们定义了一个 `birth` 结构体,包含了出生年月日三个整型成员变量。在 `get_birth` 函数中,我们首先定义一个 `birth` 结构体的变量 `result`,然后从身份证号中提取出生年月日,将其转换为整数,并将结果存储在 `result` 中,最后返回 `result`。
在 `main` 函数中,我们首先读入用户输入的身份证号,然后调用 `get_birth` 函数获取出生年月日,并输出到屏幕上。
阅读全文