我的一项任务是编写自己的 UNIX Shell。为了接收用户的输入,我使用 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 表示字符串长度为 5 个字符,而不是 4 个。我想做这个:
if( (strcmp(command, "exit")) == 0 ){
doSomething();
}
但是命令永远不会等于我想要的字符串;它就像它有一个我不确定的未知字符。它是最后的空字符吗?如何更改 if 语句以检查 fgets 捕获的用户输入是否等于“exit”?谢谢!