ava*_*sin -3 c arrays null loops null-terminated
如何检查char
数组是否以空值终止?
char input[80];
fgets(input, sizeof(input), stdin);
for (i = 0; input[i]; i++)
{
if (input[i] == '\0') {
printf("null!!!"); // never works
}
}
Run Code Online (Sandbox Code Playgroud)
例如,以下代码不会打印null
.
在for
循环条件中,您已经在检查非0值input[i]
,因此内部if
是一个死区.
要测试,进行无限循环,检查if
然后打印和break
输出.就像是
for (i = 0; ; i++)
{
if (input[i] == '\0') {
printf("null!!!\n"); // now works
break;
}
}
Run Code Online (Sandbox Code Playgroud)