C语言: Scanning and printing Names

标签 c arrays scanf

今天,我编写了一个 C 程序来从键盘扫描两个名字并将其打印在显示器上

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 初学者。我应该做什么才能使它成为正确的程序。

最佳答案

看看你声明的字符b[2]是错误的。您正在扫描字符串值,并且您的声明表明您需要 b 数组中的两个字符
如果您想接受两个字符串值,则您的声明必须是:

char *b[1];

在这里您可以扫描数组中的值:

*b[0] = "string1";
*b[1] = "string2";


您可以使用二维数组进行存储,然后您的声明将是:

char b[2][100];

这里,100 指定您要输入的字符串的字符数,2 是您要输入的字符串的值的数量。
我希望这能消除您的疑虑。

关于C语言: Scanning and printing Names,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35519918/

相关文章:

python - 访问存储在 pandas dataframe 中的数组

javascript - 使用 AngularJS 将多个输入的值从 ng-repeat 推送到数组中

c++ - 是否可以在控制台中用 C 打印孟加拉语?

c - C 语言的文件归档器

c - C 新手,简单循环

c# - 为什么 C# 数组对枚举使用引用类型,而 List<T> 使用可变结构?

c - C 中结构的意外行为

c - 如何正确使用 sscanf?

c - 使用 scanf 解析 hh :mm:ss, 一些输入出现奇怪的错误

c - C 中的列表文件 (.LST)