为什么我看不到数组中的最后一个char是null终止符?

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.

Sou*_*osh 7

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)