我正在学习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个插槽呢?
答案 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中的对象可以拥有任何大小。