2数组长度都为5,只有输入字符少于5个时a才正常,为5时用printf输出全为空格,用putchar输出时a[0]为空格,b都正常;为什么在使用codeblocks输出时异常,在VC,Dev C++输出时正常
#include<stdio.h>
int main()
{
char a[5],b[5];
scanf("%s%s",a,b);
printf("%s\n%s\n",a,b);
int i;
for(i=0;i<5;i++)
{
putchar(a[i]);
}
}
输入5个字符,当字符串输入时,数组长度至少需要6,将a,b数组大小改大一点,至少比你需要输入的字符串的长度大1。
建议修改如下:
#include<stdio.h>
#define MAXSIZE 1000
int main()
{
char a[MAXSIZE+1],b[MAXSIZE+1];
scanf("%s%s",a,b);
printf("%s\n%s\n",a,b);
int i;
while(a[i] != '\0')
{
putchar(a[i]);
i++;
}
}