我正在学习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_t
。 int
不能保证拥有C中对象可以具有的任何大小。