【问题标题】:getting user input for an character array and displaying it using C program获取字符数组的用户输入并使用 C 程序显示它
【发布时间】:2018-09-09 06:32:50
【问题描述】:

这是一个简单的程序,用于从用户那里获取六个字符并将其存储在一个数组中然后显示它。但它不这样做,阅读部分的打印语句打印了两次。请帮我解决

#include<stdio.h>

int main()
{
    int i=0;
    char a[6];

    for(i=0 ; i<6 ;i++)
    {
        printf("Enter a character \n");
        scanf("%c",&a[i]);  

    }
    for(i=0 ; i<6 ;i++)
    {
        printf("%c",a[i]);  

    }


    return 0;

【问题讨论】:

标签: c


【解决方案1】:

你在导入输入时出错了,你可以使用 %s

#include<stdio.h>

int main()
{
    int i=0;
    char a[6];
    for(i=0;i<6;i++)
    {
        printf("%d-)Enter a character : ",i+1); scanf("%s",&a[i]);
    }
    for(i=0;i<6;i++)
    {
        printf("Value of %d. element in Array : %c\n",i+1,a[i]);
    }

    return 1903; //Beşiktaş Football Club was founded in 1903 :)
}

【讨论】:

  • 这是完全错误的。 OP 希望将字符输入放入数组中,而不是输入字符串。在任何情况下,您都应该在使用%s 转换说明符时指定最大宽度以避免缓冲区溢出。但是,由于scanf() 始终以\0 结束字符串,因此保证在最后一次输入循环执行时写入数组末尾之后,导致未定义的行为。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-09
  • 2015-01-28
  • 2019-09-01
  • 1970-01-01
相关资源
最近更新 更多