从C中的char数组中打印出一个字符串

时间:2017-11-20 08:08:31

标签: c arrays for-loop printf

我正在学习C编程,我有一些问题要打印一个存储在char数组中的名称。

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

这是我的代码,我尝试打印出一个名字,比如“Joe Doe”,我已经存储在char数组中,但是当我运行它时,我在编译器中遇到了一些错误。 如果我不想这样做,我怎么能打印出名称而不是阵列的所有125个插槽呢?

1 个答案:

答案 0 :(得分:1)

假设您的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就会评为真。此外,始终使用size_t作为数组索引。 int不能保证C中的对象可以拥有任何大小。