C语言程序设计:写一个函数,从给定的身份证号中提取出生年月日

作者&投稿:植独 (若有异议请与网页底部的电邮联系)
用C语言求:写一个函数,从给定的身份证号中提取出生年月信息,并按日期格式输出。~

#include
#include

void main()
{
int len,year,month,day;
char str[30],str1[10];

printf("
请输入身份证号:
");
gets(str);
len=strlen(str);
if(len==18)
{
sscanf(str, "%6c%4d%2d%2d", str1,&year,&month,&day);
printf("出生日期:%d年%d月%d日
",year,month,day);
}
else printf("输入错误!
");
}

#include
#include
#include
int main()
{
char id[]="410246198704030811";
printf("请输入您的身份证号(18位数字):
");
scanf("%s",id);
printf("您出生在%c%c%c%c年%c%c月%c%c日
",id[6],id[7],id[8],id[9],id[10],id[11],id[12],id[13]);
system("pause");
return 0;
}

这个简单,用以字符串str[20]={身份证号码};出生月日就是倒数第7个元素到第14个元素结束;
用一个for循环,如str[20]="45032519901016127X";for(i=6;i<=13;i++) putchar(str[i]);就可以了
结果是19901016,有木有?

#include<stdio.h>

int year=0,month=0,day=0;

void getDate(char *num)
{
year=(num[6]-'0')*1000+(num[7]-'0')*100+(num[8]-'0')*10+(num[9]-'0');
month=(num[10]-'0')*10+(num[11]-'0');
day=(num[12]-'0')*10+(num[13]-'0');
}

void main()
{
char num[20]={NULL};

printf("请输入身份证号: \n");
scanf("%s",num);

getDate(num);

printf("year=%d,month=%d,day=%d",year,month,day);
}

#include <stdio.h>
#include <string.h>
void GetDate(char* str, int& year, int& month, int& day)
{
char strYear[5];
char strMonth[3];
char strDay[3];
memcpy(strYear, str + 6, 4);
memcpy(strMonth, str + 10, 2);
memcpy(strDay, str + 12, 2);
year = atoi(strYear);
month = atoi(strMonth);
day = atoi(strDay);
}
void main()
{
char str[19];
int year, month, day;
printf("身份证号:");
scanf("%s", str);
GetDate(str, year, month, day);
printf("出生年月日:%d %d %d\n", year, month, day);
}

#include
#include
void
main()
{
int
len,year,month,day;
char
str[30],str1[10];
printf("\n请输入身份证号:\n");
gets(str);
len=strlen(str);
if(len==18)
{
sscanf(str,
"%6c%4d%2d%2d",
str1,&year,&month,&day);
printf("出生日期:%d年%d月%d日\n",year,month,day);
}
else
printf("输入错误!\n");
}

#include <stdio.h>
void main()
{
int a[18];
printf("输入身份证号码:");
for(int i=0;i<18;i++)
scanf("%1d",&a[i]);
for(i=6;i<10;i++)
printf("%d",a[i]);
printf("年");
for(i=10;i<12;i++)
printf("%d",a[i]);
printf("月");
for(i=12;i<14;i++)
printf("%d",a[i]);
printf("日\n");

}


C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个...
int main(){ int a, b, i, t;int k = 0, sum = 0;scanf("%d", &a); \/\/输入整数a t = a;if(a \/ 10 == 0){ k = 1;sum = a;printf("%d\\n", k);printf("%d\\n", sum);} else { while(a \/ 10 != 0){ a = a \/ 10; \/\/每除10,就有一位 k++;} printf...

c语言程序大神帮忙设计一下?
int getLen(char path[]);\/\/重新计算信息长度,成功返回1,失败返回-1 int getMaxId(char path[]);\/\/获取最大的id,避免ID重复,成功返回1,失败返回-1 WR *readFormFile(char path[]);\/\/读取文件内容到结构体数组,成功返回数组,失败返回NULL void showWRS();\/\/打印输出文件所有内容 WR *...

C语言课程设计~~~ 要求编写一段程序,题目是《校际运动会管理系统...
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)break;} printf("\\nxuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen\\n");for(j=0,k=1;j

C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
gets(str); \/\/从键盘中输入一个字符串(遇回车键结束)printit(str,strlen(str)); \/\/调用上面定义的函数反序输出字符串 printf("\\n"); \/\/输入一个回车换行符,使后续输出能另起一行 return 0;}

c语言程序设计请编写一个函数fun,它的功能是:将ss所指字符串中所有下...
include<stdio.h>#include <stdlib.h>#include <string.h>void fun(char a[]){ int i; int t=strlen(a); for(i=0;i<t;i++) { if(i%2!=0) { if(toascii(a[i])>=97&&toascii(a[i])<=122) { a[i]=(char)(toascii(a[i])-32); } ...

c语言:程序设计
int main(){ char a[]="123456"; \/\/ 密码char ch;char st[20]; int i,k=1; \/\/k用于统计输入密码的次数 A:printf("请输入密码:");i=0;ch=getch(); \/* getch()函数从键盘接收字符,不在屏幕上显示 *\/ while(ch!=13) \/* 13为换行字符ASCII码 ,键盘输入为回车...

一条c程序只能写一条语句吗?
c程序中的每一行只能写一条语句,这个说法是错误的。

c程序书写格式自由,一行内可以写几个语句
1、在C语言中,程序书写格式相对自由,每行可以写一个语句,也可以写多个语句。这主要是因为C语言中的语句分隔符是分号(;),只要在每行末尾使用分号,就可以结束一条语句。2、尽管技术上允许在一行内写多个语句,但一般来说,为了增强代码的可读性和维护性,不建议这样做。在C语言编程中,通常每行...

用C++语言写程序
家具的坐标必须是x小于房间的宽,大于0,y小于房间的长,大于0,而且不能有一个坐标和门一样且另一个坐标和门差1。明白了这些条件,程序就很好写了。代码如下,虽然有点长,但主要在判断合理性。【程序代码】#include<iostream>#include<stdio.h>using namespace std;int main(){int l,w, \/...

c语言程序设计:设变量a、b、c分别存放从键盘输入的3个整数。编写程序...
{ int a,b,c,t;scanf("%d%d%d",&a,&b,&c);if(a<b) {t=a;a=b;b=t;};\/\/如果a<b,则交换a,b的位置 if(a<c) {t=a;a=c;c=t;};\/\/如果a<c,则交换a,c的位置 if(c>b) {t=c;c=b;b=t;}\/\/如果 c>b,则交换c,b的位置,以保证c最小 printf("a=%d b=%d...

路桥区17652591392: C语言程序设计:写一个函数,从给定的E - mail地址中返回账户名 -
屈露小儿: #include "stdio.h" void getname(char a[],char b[]) { int i; for(i=0;a[i]!='@';i++) b[i]=a[i]; b[i]='\0'; } main() { char a[256],b[256]; gets(a); getname(a,b); puts(b); }

路桥区17652591392: c语言,编写一个函数,指定字符串 删除给定字符 -
屈露小儿: #include<stdio.h> char ss[1000]; int delchar(char s[], char c){int i,t;for(i=0,t=0; i<1000; i++){if(s[i]==c) continue;ss[t++]=s[i];}ss[t]='\0';return t; }main(){char s[1000],c;scanf("%s %c",&s,&c);delchar(s,c);printf("%s",ss); }

路桥区17652591392: C语言中如何通过函数实现从给定字符串中删除指定字符串?谢谢各位帮忙
屈露小儿: char* DelStr(char* str1, char* str2) { int i,j; int iLen1,iLen2; int iFlag,iPos; char s1[128+1],s2[128+1]; memset(s1,0x00,sizeof(s1)); memset(s2,0x00,sizeof(s2)); strcpy(s1,str1); strcpy(s2,str2); iLen1 = strlen(s1); iLen2 = strlen(s2); for(i = 0;i&lt;=iLen1 - ...

路桥区17652591392: 编写一函数,能从给定的数组中查找给定的值,并返回该值的下标.如果没有找到则返回 - 1. -
屈露小儿: #include <stdio.h> template<class TYPE> int ArrayFind(TYPE*pBuf,int nBuflen,TYPE nFind) { for(int i=0;i<nBuflen;i++) { if(pBuf[i]==nFind)return i; } return -1; } int main(int argc, char* argv[]) { char a[]={1,2,4,2,6,7,88,4,2,5}; int re=ArrayFind(a,sizeof(a),(char)6); printf("下标:%d\n",re); return 0; }

路桥区17652591392: c语言,编写一个函数,指定字符串 删除给定字符 -
屈露小儿: #include char ss[1000];int delchar(char s[], char c){ int i,t; for(i=0,t=0; i<1000; i++){ if(s[i]==c) continue; ss[t++]=s[i]; } s...

路桥区17652591392: C语言程序:编写从整形数组中检索给定数值的函数,若找到则输出该数值在数组中的位 -
屈露小儿: #include<stdio.h> int main() {int test[]={1,2,3,5,23,43,4,3,5};int i,n;printf("请输入一个数:");scanf("%d",&n);for(i=0;i<sizeof(test);i++)if(n==test[i])printf("该数在数组中第%d位",i);if(i==sizeof(test))printf("数组中没有输入的数");return 0; }

路桥区17652591392: 用c语言编写fun函数求一个给定字符串中的字母的个数 -
屈露小儿: #include <stdio.h>#include<string.h> int fun(char *s) { int num=0; char ch; while((ch=*s++)!='\0') if((ch<=90 && ch>=65) || (ch>=97 && ch<=122))num++; return num; } int main () { char s[]="123zbc @ 123w"; /*测试用的字符串(里面可以含空格,...

路桥区17652591392: C编程写一个函数,使给定的一个二维数组(3*4)进行转置,即行列在、互换,并输出转置前后的结果.(函数) -
屈露小儿: b[j] [i]=a[i] [j]这就是实现矩阵转置了.i行j列与j行i列进行交换,使用中间变量来实现交换值.

路桥区17652591392: 用c语言编写一个函数,按照给定的行数打印菱形图案 -
屈露小儿: #include <stdio.h> void print(int k) {int i,j,n;n = k/2+1; for(i = 0;i<n;i++){for(j=0;j<n-i; j ++)putchar(' ');for(j = 0; j<2*i+1; j++)putchar('*');putchar('\n');}for(i = n-2; i>=0; i --){for(j=0;j<n-i; j ++)putchar(' ');for(j = 0; j<2*i+1; j++)putchar('*');...

路桥区17652591392: c语言答案问问编写一个函数,能够从给定的3个双精度数中,找出最大的一个并返回.然后,在主函数中,提示
屈露小儿: 你好,程序如下: #include<stdio.h> int max(double a,double b,double c) { double maxNumber; if(a>=b&&a>=c) maxNumber=a; if(b>=a&&b>=c) maxNumber=b; if(c>=a&&c>=b) maxNumber=c; return maxNumber; } void main() { double a,b,c; double ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网