今天,我写了一个C Programe来扫描键盘上的两个名字并在显示器上打印它是
char b[2],i;
for(i=0;i<2;i++)
{
scanf("%s",b[i]);
}
for(i=0;i<2;i++)
{
printf("%s",b[i]);
}
但是输出是运行时错误,我是C的初学者。我该怎样做才能使它成为正确的程序。
答案 0 :(得分:1)
首先,%s
是摄取字符串,%c
是为了扫描单个字符。
那就是说,在你的情况下,
答案 1 :(得分:1)
查看您声明的内容是错误的字符b[2]
。您正在扫描字符串值,声明表示您想要b数组中的两个字符
如果你想接受两个字符串值,那么你的声明必须是:
char *b[1];
您可以在此处扫描数组中的值:
*b[0] = "string1";
*b[1] = "string2";
或强>
您可以使用二维数组进行存储,然后您的声明将是:
char b[2][100];
现在,100指定要输入的字符串的字符数,2表示您输入的字符串的值的数量。
我希望这能清除你的疑虑。
答案 2 :(得分:0)
您可以按照下面的说明更正代码,以便获得正确的输出。
#include<stdio.h>
void main()
{
char b[2][20];
int i;
for(i=0;i<2;i++)
{
scanf("%s",b[i]);
}
for(i=0;i<2;i++)
{
printf("%s\n",b[i]);
}
}