C 字符串数组输出不正确

标签 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');
    }

谢谢

最佳答案

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

关于C 字符串数组输出不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19506777/

相关文章:

c - 当 p 指向一个数组(int)索引时, '-1[p]' 是什么?

java - 如何迭代动态 JSON 键

javascript - 如何将文件内容解释为模板字符串?

python - 如何向 string.punctuation 添加更多标点符号

我看不懂的C代码

c++ - C/C++ 中两个 INT_MAX 数字的乘积不正确

c - 求数组中两个数的平方和

java - 如何在方法中返回数组?

将特定数组元素与 C 中具有 "if"的字符串进行比较?

java - 谷歌 Collection 中是否有一个字符串来映射拆分器