看看这个程序错在哪里。

来源:百度知道 编辑:UC知道 时间:2024/06/03 20:19:48
(本程序的作用是根据一个人的身份证号得出这个人的出生年月日。程序好像过分简短了点,或许程序本身有问题。在程序被执行时,程序能根据输入的数据得出这个人的出生年月日,但就是在得出的结果后面出现乱码(我也不知道那叫什么东西,姑且这么叫吧),本人不知是什么原因,请各位高手指教。)

#include<stdio.h>
void main()
{
int i,j;
char a[100],b[100];
printf("\nplease check in 身份证号码: \n");
scanf("%s",a);
for(i=6,j=0;i<14;i++,j++)
b[j]=a[i];
printf("%s",b);
}

你的b是一个字符数组,如果要用%s方式输入,也就是输出一个字符串,那么在b数组的最后一位应该加上'\0', 相信就不会输出乱码了!

for(i=6,j=0;i<14;i++,j++)
{
b[j]=a[i];
}
b[j++] = '\0'; //添加这一句,就OK,注意是循环外面
printf( "%s", b );

#include<stdio.h>
void main()
{
int i,j;
char a[100],b[100];
printf("\nplease check in 身份证号码: \n");
scanf("%s",$a);
for(i=6,j=0;i<14;i++,j++)
b[j]=a[i];
for(j=0;j<8;j++)
printf("%s",b[j]);
}

没装c,你再调下