所以我有一个单词列表,让我们调用它们
words = {"red", "blue", "yellow", "green", "orange"}
然后我有一个字符串,我从中读取
stdin
,我使用以下代码解析此字符串
char *token;
token = strtok(string," ");
然后,我将新标记与for循环中的单词列表进行比较,使用
strcmp(token,words[i]);
现在,这只在我的输入后面至少有一个空格时才起作用,例如,
"blue hello"
或
"blue "
,将计算为匹配的单词,因为标记将等于
"blue"
但如果我的意见是
“蓝色”
令牌为
""
我无法将两者进行比较。
现在我的解决方法包括运行
isblank()
在字符串上,如果字符串中有空格,则只使用笔划,如果没有空格,则只比较字符串本身,因为我知道它只有一个单词
strcmp(string, words[I])
但这也会导致
strcmp
失败并且无法将两个字符串进行比较。我真的不知道还有什么地方可以这样做,但如果有人能看到我在解释中的错误,那么我将非常感激被纠正并显示我的错误。我很想发布更多的代码,但这与学校有关,所以我无法在可能遇到麻烦的范围内发布更多代码。如果你想要更多的解释,我很乐意解释更多。