身份证提取学生性别年龄用c语言
时间: 2024-03-04 16:51:16 浏览: 56
C#根据身份证号码计算年龄和性别
你可以用 C 语言中的字符串处理函数和数值处理函数来提取身份证中的信息。以下是一个示例程序,可以提取身份证中的性别和年龄信息:
```c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char id[19];
printf("请输入身份证号码:");
scanf("%s", id);
// 提取出生年月日
char birth[9];
strncpy(birth, id + 6, 8);
birth[8] = '\0';
// 提取性别
int gender = (id[16] - '0') % 2;
if (gender == 0) {
printf("性别:女\n");
} else {
printf("性别:男\n");
}
// 计算年龄
int birthYear = atoi(strncpy(malloc(5), birth, 4));
int birthMonth = atoi(strncpy(malloc(3), birth + 4, 2));
int birthDay = atoi(strncpy(malloc(3), birth + 6, 2));
time_t now = time(NULL);
struct tm *t = localtime(&now);
int age = t->tm_year + 1900 - birthYear;
if (t->tm_mon + 1 < birthMonth || (t->tm_mon + 1 == birthMonth && t->tm_mday < birthDay)) {
age--;
}
printf("年龄:%d\n", age);
return 0;
}
```
该程序首先从用户输入中读取身份证号码,并从中提取出生年月日。然后根据身份证号码的第17位数字判断性别,并根据当前时间计算年龄。最后将提取出的信息输出到屏幕上。请注意,该程序只适用于18位身份证号码,对于15位身份证号码需要进行一定的修改。
阅读全文