gpt4 book ai didi

c - 我的 strcmp 函数有什么问题?

转载 作者:行者123 更新时间:2023-11-30 19:16:30 25 4
gpt4 key购买 nike

我的代码是:

getline(&cmd, &len, stdin);
cmd[strcspn(cmd,"\n")] = 0;
char *ncmd = (char*)malloc(strlen(cmd) + 1);
memset(ncmd, '\0', strlen(cmd));
strcpy(ncmd,cmd);

const char *tok = strtok(ncmd, " ");


// token is just string from stdin
if(!strcmp(tok, "bye")){
printf("bye");
} else if (!strcmp(tok, "help")){
printf("help");
} else if (!strcmp(tok, "list")){
......
}

即。输入:帮助和再见

Result: TOK: help
strcmp(tok, "bye"): 6
strcmp(tok, "help"): 0
strcmp(tok, "list"): -10

Result: TOK: bye
strcmp(tok, "bye"): 0
strcmp(tok, "help"): -6
strcmp(tok, "list"): -4

无论我输入什么,我似乎都无法提取出正确的 if 语句。如何修复“strcmp”函数,使其转到正确的 if 语句?

最佳答案

由于代码和 if 语句是正确的,我认为 tok 有额外的字符,例如换行符。那么tok将永远不会等于你的任何单词。

关于c - 我的 strcmp 函数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30037466/

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