str[5];
fgets(str, sizeof str, stdin);

if (str[0]) printf("%s", str);

これでstrに0だけを入れてもprintfが実行されてしまいます。
str[0]が0だったら偽だと思うんですけど。
str[0]!=0としてみましたがやはりprintfが実行されてしまいました。
なぜなんですか?