检查身份证号码的正确性

// 项目名称:检查身份证号码的正确性
// 开发平台:/*操作系统:Windows 10 X64开发环境:Visual Studio 2019解决方案配置:Debug解决方案平台:X86*/
// 作者信息:/*作者:回车键QQ:1737397473QQ群:338191797网易云课堂:C语言函数与案例微信公众号:C语言函数与案例*/
// 项目描述:/*身份证号码里各位数据都有各自的含义,本例便是依据这些来判断身份证号码的正确性。程序中使用字符串指针作为参数,通过下标的形式,分别对指定位置的数据进行校验,最终校验出身份证号码的正确性。*/
// 头文件#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>
// 身份证号码检测函数int Chk18PaperId(const char* sPaperId){ long lSumQT = 0; // 加权因子 int R[] = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }; // 校验码 char sChecker[11] = { '1','0','X', '9', '8', '7', '6', '5', '4', '3', '2' };
// 检验长度 if (18 != strlen(sPaperId)) { return -1; }
//校验数字 int i = 0; for (i = 0; i < 18; i ) { if (!isdigit(sPaperId[i]) && !(('X' == sPaperId[i] || 'x' == sPaperId[i]) && 17 == i)) { return -1; } }
//验证最末的校验码 for (i = 0; i <= 16; i ) { lSumQT = (sPaperId[i] - 48) * R[i]; }
if (sChecker[lSumQT % 11] != sPaperId[17]) { return -1; }
return 0;}
// 主函数int main(){ // 声明变量 char Personal_ID[19]; printf('请输入一个身份证号码:\n');
while (true) { // 用户输入一个字符串身份证号码 gets_s(Personal_ID);
// 调用检测函数 if (!Chk18PaperId(Personal_ID)) { printf('合法\n'); break; } else { printf('不合法\n请重新输入:\n'); continue; }
} // 使程序处于挂起状态,等待用户按键以继续操作 system('pause');
// 返回整形值0表示程序运行正确 return 0;}
(0)

相关推荐

  • 1个公式校验身份证号码的正确性

    跟李锐学Excel, 高效工作,快乐生活. 1个公式校验身份证号码的正确性 在工作中涉及身份证号码正确性的校验时,很多人苦苦求索但找不到方法. 其实Excel强大的计算和统计功能可以帮我们自动校验,免 ...

  • 不用记函数,Excel怎样由身份证号码自动生成出生日期及性别

    不用记函数,Excel怎样由身份证号码自动生成出生日期及性别

  • 1个Excel公式检查身份证号码是否重复

    点击下方 ↓ 关注,每天免费看Excel专业教程 置顶公众号或设为星标 ↑ 才能每天及时收到推送 个人微信号 | (ID:LiRuiExcel520) 微信服务号 | 跟李锐学Excel(ID:LiR ...

  • 1个公式检查身份证号码是否重复

    原创作者 | 李锐 微信公众号 | Excel函数与公式(ID:ExcelLiRui) 微信个人号 | (ID:ExcelLiRui520) 1个公式检查身份证号码是否重复 在工作中涉及身份证号码的表 ...

  • 跟李锐学Excel:COUNTIF函数检查重复身份证号码

    跟李锐学Excel:COUNTIF函数检查重复身份证号码

  • 身份证号码的数字代表什么意义

    首先,身份证号码是由十八位数字组成,其中第一位和第二位代表的是所在省份的代码,第三位和第四位代表的是所在城市的代码,第五位和第六位代表的是所在区县的代码:第七位到第十四位代表的是生日,依次是年.月.日 ...

  • 教学管理菜鸟成长记84-如何对身份证号码查重?

    关键词:EXCEL2016:IF函数:COUNTIF函数:身份证号码查重:操作难度*** 近期小菜在组织一个考试,里面需要考生的身份证号码,汇总各系各班级数据后,在导入系统前,小菜打算对数据进行一次查 ...

  • 怎样知道身份证号码是哪个省的?

    先上答案: 北京11 天津 12 辽宁21 河北省13 吉林22 山西省14 黑龙江23 内蒙古自治区15 上海市31 河南41 江苏32 湖北42 浙江33 湖南43 安徽34 广东44 福建35 ...

  • 表格中身份证号码提取出年龄

    如何从表格中的身份证号码提取出年龄呢?下面是具体的操作方法. 打开一个WPS excel"年龄计算表". 输入姓名和身份证号码. 在年龄列下单元格输入公式"=DATEDI ...

  • 转Excel身份证号码计算年龄公式

    在前面的几篇Excel身份证号码的文章中,我已经讲解了如何利用Excel身份证号码来获取出生年月日以及判断男女性别等函数公式,今天,再继续我们的Excel身份证号码的专题.讲解一下利用身份证号码来计算 ...