c - 逐字符打印字符串数组

标签 c arrays

我对 C 还不是很熟悉,还面临另一个问题。通常我会从这里找到问题的答案,但这次我没有。可能有一个,但无论如何......

这是交易。我有一组字符串,我想打印它们,每一项都有自己的一行。数组以 NULL 结尾。

这是我的 atm 代码的简化版本。

print_my_array(char *array[])
{ 

    while(*array != NULL){
        char *item = *array;
        while (item)
        {
            int i = 0;
            printf("%c", item[i]);
            i++;
        }
        printf("\n");
        array++;
    }

}

所以这就是我相信我的代码所做的。我有一个名为数组的数组。我使用名为 item 的指针并用它指向数组中的第一项。然后我遍历该项目并一个一个地打印所有字符。当我完成项目时,我打印\n 并通过移动数组指针并开始循环来移动到下一个项目。

最佳答案

内循环错误:

while (item)
{
  // all your code
}

应该是

while (*item)
{
  printf("%c", *item++);
}

当然,使用 printf("%s\n", *array++); 并完全跳过内部循环会更有意义。

关于c - 逐字符打印字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35343257/

相关文章:

c - 这个代码片段具体做了什么?

c - 为什么我的 PSET1 Credit 可以在沙盒中运行,但不能在 Check50 中运行?

javascript - jQuery 从后退按钮上的数组中删除最后一个元素

java - 如何接受数组的输入

c - C中的char数组和char指针有什么区别?

c - 为什么我的代码是逐字打印而不是逐句打印?

c - 无论值大小如何,一次读取一个字节字节顺序是不可知的吗?

arrays - PSObject 数组返回 Powershell 读取单个项目/行

python - 如何从一维数组中获得正确的波峰和波谷

c - C中的直接调用与间接调用