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;

}

相关文章

发表新评论