gpt4 book ai didi

c - C 中 strcmp() 的问题

转载 作者:行者123 更新时间:2023-12-02 04:48:02 24 4
gpt4 key购买 nike

char* mystr = calloc(25, sizeof(char));
fgets(mystr, 25, stdin); // I enter "6 7 *" in here, without the quotes

char* tok;
tok = strtok(mystr, " ");
while (tok != NULL) {
if(strcmp(tok, "*") == 0)
//It never meets this condition, but I don't understand why
else
//do something else here
tok = strtok(NULL, " ");
}

问题是 strcmp(tok, "*") 永远不会返回相等的结果,即使 tok 从原始字符串中读入星号。我不明白为什么它永远不会满足这个条件。

最佳答案

您的 * token 可能还包含您为完成输入而键入的 \n 字符。将单个字符与以下之一进行比较:

  if(tok[0] == '*')

if(strncmp(tok, "*", 1) == 0)

或将 \n 添加到您的分隔符列表:

  tok = strtok(NULL, " \n");

关于c - C 中 strcmp() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19419338/

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