私の課題の 1 つは、独自の UNIX シェルを作成することです。ユーザーからの入力を受け取るために、fgets を使用して入力を文字列としてキャプチャしていますが、それがどのように機能するかはよくわかりません。私が実行すると:
char command[50];
fgets(command, sizeof(command), stdin);
printf("Your Command: %s", &command);
int length = strlen(command);
printf("Length of String: %d\n", length);
私の入力が「終了」だったとしましょう。strlen は、文字列の長さが 4 文字ではなく 5 文字であることを示しています。私はこれをしたい:
if( (strcmp(command, "exit")) == 0 ){
doSomething();
}
しかし、コマンドは私が望む文字列と決して等しくありません。よくわからない未知のキャラクターを持っているようです。最後にヌル文字ですか?if ステートメントを変更して、fgets でキャッチされたユーザー入力が「exit」に等しいことを確認するにはどうすればよいですか? ありがとう!