等しくありません:
fgets (answer, 256, stdin);
if (strncmp(answer, "sta", 4) == 0)
printf("omg, it's equal");
このコードは次のとおりです。
fgets (answer, 4, stdin);
if (strncmp(answer, "sta", 4) == 0)
printf("omg, it's equal");
なんで?最初の回答では、4 番目の場所に \0 がないためです (4 ではなく 3 に変更すると機能します)。しかし、fgets は何をするのでしょうか? 最初の文字列の答えはstr \whitespace*253\0"
? そして2番目にそれはstr\0
? ありがとうございました。