【发布时间】:2015-09-22 01:35:24
【问题描述】:
我无法弄清楚为什么Strchr() 在我的功能中不起作用。我需要查看用户猜测是否匹配隐藏单词中的任何字母。这是一个刽子手游戏。
int guessLetter(char* word, int* guessedLetters)
{
char guess[20];
char *s;
printf("Enter your guess: ");
scanf("%s", &guess);
s = strchr (word, guess);
printf("%s", s);
if (s != NULL) {
printf ("Good Guess\n");
} else {
printf ("Bad Guess\n");
}
}
不管猜对还是错,我的else语句都被激活了。我的printf 显示s 被赋予Null 的值,无论该字符是否在单词中。
所以我想我的问题在于这部分代码:
s = strchr (word, guess);
我是 C 新手,所以我确信我只是缺少一些非常基本的东西。我已尝试尽可能多地搜索网络,但我似乎无法理解我做错了什么。
【问题讨论】:
-
const char * strchr ( const char * str, int character )在第二个参数中接受一个 int 输入。不是字符 [20]。您的函数也返回一个未定义的 int 值 atm.. -
strchr的参数是一个字符数组和一个字符(不是字符数组)。
-
另外,从您的
scanf中删除&。扫描/打印%s时不要添加&。 -
你可能需要strstr
-
@amdixon。谢谢,我花了一点时间才明白为什么它需要一个 int 参数,但我现在明白了。