打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
检查身份证号码的正确性
// 项目名称:检查身份证号码的正确性
// 开发平台:/*操作系统: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;}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Excel表格身份证号码提取出生日期的公式
Excel如何禁止重复输入身份证号码
Excel常用函数公式
excel中怎么查重复的18位身份证号码
华为2012校园招聘上机编程题
Excel中如何利用函数验证身份证号码录入是否正确
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服