编写一个C语言用户输入一个合法的身份证号,请输出用户的出生年月日和性别
时间: 2024-03-09 18:44:29 浏览: 131
好的,以下是实现该功能的C语言代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char id[19];
printf("请输入您的身份证号:");
scanf("%s", id);
if (strlen(id) != 18) {
printf("身份证号输入错误!\n");
return 0;
}
// 解析出生年月日
char year[5], month[3], day[3];
strncpy(year, id + 6, 4);
year[4] = '\0';
strncpy(month, id + 10, 2);
month[2] = '\0';
strncpy(day, id + 12, 2);
day[2] = '\0';
printf("出生年月日:%s年%s月%s日\n", year, month, day);
// 解析性别
int gender = (id[16] - '0') % 2;
printf("性别:%s\n", gender == 1 ? "男" : "女");
return 0;
}
```
以上代码通过用户输入身份证号,然后解析出生年月日以及性别,并输出给用户。其中,身份证号的合法性判断是通过判断字符串长度是否为18来实现的,如果不是则认为用户输入错误。出生年月日的解析是通过截取字符串的方式实现的,性别的解析是通过解析身份证号的第17位来实现的。
阅读全文