gpt4 book ai didi

c - C语言中fgets函数的使用

转载 作者:太空狗 更新时间:2023-10-29 15:11:06 26 4
gpt4 key购买 nike

我的一项任务是编写自己的 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 个字符,而不是四个。我想这样做:

if( (strcmp(command, "exit")) == 0 ){
doSomething();
}

但是命令永远不会等于我想要的字符串;就像它有一个我不确定的未知字符。最后是空字符吗?如何更改 if 语句以检查用 fgets 捕获的用户输入是否等于“exit”?谢谢!

最佳答案

fgets 将行终止符视为有效字符。那就是您收到的额外字符。

只需执行 command[strlen(command) - 1] = '\0'; 之类的操作即可删除行终止符。然后你就可以自由地做你所有的strcmp了。

关于c - C语言中fgets函数的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4893537/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com