我正在学习C编程,但是在打印存储在char数组中的名称时遇到了一些问题。

char nameArr[125];
for (int i = 0; i < 125; i++)
{
    if (nameArr[i] != "\0")
    {
        printf(nameArr[i]);
    }
    else
    {
        i = 125;
    }
}


这是我的代码,其中我尝试打印出已经存储在char数组中的“ Joe Doe”之类的名称,但是运行此程序时在编译器中出现一些错误。
如果我不打算这样做,该如何仅打印名称而不是数组的所有125个插槽?

最佳答案

假设您的nameArr已经包含一个字符串,该字符串定义为以0结尾的字符序列,显而易见的解决方案是

printf("%s", nameArr);


要么

puts(nameArr); // appends newline automatically




如果您的问题是如何手动执行此操作,则它将类似于以下内容:

for (size_t i = 0; nameArr[i]; ++i)
{
    putchar(nameArr[i]);
    // or printf("%c", nameArr[i]);
}


只要这不是nameArr[i]字节,0的评估结果就为true。另外,对于数组索引始终使用size_tint不能保证拥有C中对象可以具有的任何大小。

07-26 09:31