怎样把身份证号码用C++的结构体表示,像截取前两位,并是整型的

[复制链接]
查看11 | 回复3 | 2011-5-1 02:15:13 | 显示全部楼层 |阅读模式
要求输入一串18位的省份证号码,能显示出出生省市,出生日期以及性别(为只要表达出意思即可,省市只写北京的就行)
注:省份证前两位表示省份(如11XXXXXXXXXXXXXXXX,11表示北京)

第7-14位表示出生日期(如XXXXXX19810529XXXX,出生日期位19810529)

第17位表示性别,奇数是男,偶数是女(如XXXXXXXXXXXXXXXXX2X,性别是女)
要求用C++的知识,身份证号用结构体,输出省份时用switch语句

回复

使用道具 举报

千问 | 2011-5-1 02:15:13 | 显示全部楼层
取子串用s.substr(a,b)
从下标a开始持续b位如XXXXXX19810529XXXX即s.substr(6,8) 由字符串转整数有stringstream stringstream (ss) ss>t;
回复

使用道具 举报

千问 | 2011-5-1 02:15:13 | 显示全部楼层
用switch的话必须是整数类型,假设输入的是char*字符串,用char[0],和char[1],判断是什么数字,赋值给一个整数,如int型的,可以这样int province=(char[0]-'0')*10+(char[1]-'0');然后对province进行switch。 这么一串字符串不用搞结构体
回复

使用道具 举报

千问 | 2011-5-1 02:15:13 | 显示全部楼层
不需要结构体,一维数组就可以了,或struct ID{char province [2];char null [4];char birth [8];char null2[2];char sex [1]}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行