C++实现身份证号码过滤与排序

本文介绍了一个身份证信息解析与排序的程序实现。程序能够读取一批身份证号码,验证其有效性,并按出生日期从大到小排序输出。同时,文章提供了完整的源代码及编译说明。

1.描述

警察办案里检索到一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序,如果是错误的身份证号,则从排序列表中删除(仅需判断前两位省级地区编码是否在下面的列表中,以及对出生年月是否在1949.10.1-2022.10.1之间进行判断)。
备注:身份证号码为18位的数字组成,省级地区编码是第1到第2位,出生日期为第7到第14位。
身份证前两位各省对应的编号是:
11 北京市\12 天津市\13 河北省\14 山西省\15 内蒙古自治区
21 辽宁省\22 吉林省\23 黑龙江省
31 上海市\32 江苏省\33 浙江省\34 安徽省\35 福建省\36 江西省\37 山东省
41 河南省\42 湖北省\43 湖南省\44 广东省\45 广西壮族自治区\46 海南省
50 重庆市51 四川省52 贵州省53 云南省54 西藏自治区
61 陕西省62 甘肃省63 青海省64 宁夏回族自治区65 新疆维吾尔自治区
71 台湾省
81 香港特别行政区82 澳门特别行政区


*输入格式
第一行一个整数n,表示有n个身份证号码 (n<100)
余下的n行,每行一个身份证号码。 (已保证输入数字是18位)

*输出格式
按出生时间从大到小排序后的身份证号,每行一条 

*样例输入
8
466272199203271156 
21585619900709197X
21585620000228197X
234804198701078365
404475727700034980//【注:地区码不对】
710351199203313165
118698189201011234//【注:出生年份不对】
50123419831343135X//【注:出生月日不对】

*样例输出
234804198701078365
21585619900709197X
710351199203313165
4662721992032

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值