C字符串数组输出不正确

时间:2013-10-21 23:53:52

标签: c arrays string char output

最后一件事不应该在那里,它应该只显示数字,有人能告诉我为什么会这样吗?当我举例如char [5] =“12345”;它工作得很好并删除了fors中的if

   for (k = 0; k < 12; k++)
{
        c[k] = 'g';
        printf("%", c[k]);
}
printf("input:");
scanf("%s", c);
int j, i;

    unsigned int pat;
    for (j = 0; j <5; j++) 
    {
        for (i = 0; i < 12; i++)
        {
            if (c[i+1]!='g')
            {

                pat = get_row_pattern(c[i], j);
                print_bits(pat, NUM_COLS + 1);

            }


        }
        print_char('\n');
    }

由于

1 个答案:

答案 0 :(得分:2)

在使用123的示例中,scanf将使用字符c'1''2'覆盖'3'数组的前4个元素,零。如果数组元素为'\0',您可能希望将程序逻辑更改为不打印任何内容。

相关问题