gpt4 book ai didi

c - 从数组的开头删除空格以使用 strcmp

转载 作者:行者123 更新时间:2023-12-04 15:13:32 25 4
gpt4 key购买 nike

你好,我正在使用 fgets 对我的代码进行循环,我希望当用户引入单词 "bye" 时程序结束,所以我有一个像这样的时间:

char buf[1000]

do{

fgets(buf, 1000, stdin);

//More code here

while(strcmp(buf, "bye")!=0);

但我有一个问题,当用户在 write bye 之前创建一个空格或一个制表符或多个空格时,strcmp 不会将他识别为 bye,因此只有当用户只键入 bye 而没有任何先前的 时程序才会退出空格或制表符

我想知道如果用户键入例如:

'     bye'

最佳答案

fgets 读取完整的一行,包括任何起始空格以及行尾的换行符。即使用户不输入前面的空格,buf的内容也很可能是"bye\n",这样buf就会使用 strcmp 时几乎不等于 "bye"

我建议使用 sscanf 扫描缓冲区中的单个单词,然后将该单词与 "bye" 进行比较。请注意,scanf("%s"...) 会跳过单词开头的空白字符并在单词后的第一个空白字符之前停止。

   char isStopWord[20];
isStopWord[0] = '\0';
sscanf(buf,"%19s",isStopWord);
}
while(strcmp(isStopWord, "bye")!=0);

关于c - 从数组的开头删除空格以使用 strcmp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64742906/

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