c语言省份证书编号
C语言中输出ID号的后四位可以分成数组。
将身份证字符串的后四位剪切成一个单独的数组,然后输出这个数组。
c语言只包含9种控制语句,只有32个关键字。编程要求不严格且以小写字母为主,很多不必要的部分被简化。其实和硬件相关的语句很少,C语言本身也没有提供输入输出、文件管理等硬件相关的功能。如果需要这样的函数,需要配合编译系统支持的各种库进行编程,所以C语言有非常简洁的编译系统。
ID号是什么类型的C语言定义的? 身份证有18位数字,结尾可能是X,而且一般来说不会参与数学计算,所以最好定义为字符串类型。比如在MFC中定义为CString类型,非常方便身份证提取生日等信息。
C语言专家来帮忙了,把身份证号从15改成了18。 #包含“stdio.h”
#包含" string.h "
void ChangeID(char src[],char dest[]);
void main()
{
char src[80];
char dest[80];
while(真)
{
Printf("请输入一个15位的身份证号码:\ n ");
scanf("%s ",src);
bool bValid = true
if (strlen(src)!=15)
bValid = false
其他
{
for(长k = 0;k15k)
{
if (src[k]'0' || src[k]'9 ')
{
bValid = false
打破;
}
}
}
如果(!bValid)
{
Printf("输入的数字不正确。\ n ");
}否则
{
ChangeID(src,dest);
Printf("修改后的身份证号(18位):\n%s\n ",dest);
}
printf(" \ n是否要继续?(是/否)\ N ");
char回答[80];
scanf("%s ",回答);
如果(回答[0]!='y '回答[0]!='Y ')
打破;
}
}
void ChangeID(char src[],char dest[])
{
恒定长重量[17] = {
7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2
};
const char pEnd[12]= " 10x 98765432 ";
长数据[17];
长k;
for(k = 0;K6;k)
data[k]= src[k]-' 0 ';
//将字符转换成实数值。
long Nye ar =(src[6]--0 ')* 10(src[7]--0 ');
//计算年份的后2位数。如果是09年,则认为是2000~2009年。
//否则认为是1910~1999年。
//年纪很大的人可能会犯错。没办法,千年虫。
if (nYear9)
{
//填写19
数据[6]= 1;
数据[7]= 9;
}否则
{
数据[6]= 2;
数据[7]= 0;
}
for(k = 8;k17k)
data[k]= src[k-2]--0;
long nSum = 0;
for(k = 0;k17k)
nSum =数据[k]*重量[k];
长尾= nsum;
//写回目标字符串,注意最后一位查表。
for(k = 0;k17k)
dest[k]= data[k]' 0 ';
dest[17]= pEnd[tail];
dest[18]= ' \ 0 ';
}
我试了自己的身份证,结果是正确的。
“根据对应于索引6的校验码位7”
不,应该是从0开始,对应的代码是6。
实施结果:
请输入一个15位的身份证号码:
510212711215041
修改后的身份证号码(18位):
510212197112150416
求身份证号所在省份的C语言。 根据身份证号的前两位。
写一个数组,存储身份证号前两位对应的省份。你可以在网上查一下。
然后输入身份证号,计算前两位,在数组中查找,输出对应的省份名称。
#包含stdio.h
#包含字符串. h
Char *map[50][2] ={{"11 ","北京" },{"12 ","天津" },{"13 ","河北" },{"14 ","山西" },{"15 ","内蒙古" }
//中国所有省份都有独立的号码。我这里只写了五个。你可以把它们加起来。
int main()
{
char id[30];
char p[3]= " ";
int I;
scanf("%s ",id);
p[0]= id[0];
p[1]= id[1];
for(I = 0;i 50我)
if(strcmp(p,map[I][0])= = 0)break;
if(i50) printf("%s\n ",map[I][1]);
else printf("未找到\ n ");
返回0;
}
c语言:输入身份证号,输出出生年份和是否闰年,计算年龄。如何编程? 代码文本:
#包含“stdio.h”
#包含“time.h”
int main(int argc,char *argv[]){
char s[19];
int y,t,ty;
time _ t lt
printf("请输入您的身份证号码...\ n ");
if(scanf("s",s)==1){
for(t = 0;s[t];t);
if(t==18){
for(t = 0;s[t];t)
if((s[t]' 0 ' | | s[t]' 9 ')(s[17]0x df)!='X'){
printf("输入错误,退出...\ n ");
返回0;
}
sscanf(s 6,“M”,y);
printf(" \ n您出生的年份%d是",y);
如果(!(y%4==0 y0 || y@0==0))
printf(" not ");
ty = local time((lt = time(NULL)))-TM _ year 1900-y;
printf(“闰年。\ n您已经%d岁了...\n”,ty);
}
其他
printf("输入错误,退出...\ n ");
}
其他
printf("输入失败,退出...\ n ");
返回0;
}
最后更新于 2023-10-10 14:31:01 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章