0

等しくありません:

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? ありがとうございました。

4

1 に答える 1