我在比较一个字符与if语句中的字符串有问题。 我试图让一个不太复杂的Hang子手版本,我被困在这一部分。 我已经尝试了一切从strcmp()
和strchr()
和其他人,但似乎没有任何工作。C - 有没有办法将变量放在单引号或双引号中的if语句中?
#include<stdio.h>
#include<string.h>
int main() {
int length, i;
int size=3;
char word[size]="car";
char letter;
//const char* word="car";
//const char* letter;
int guess;
length=strlen(word);
printf("The given word has %d letters.\n", length);
//do {
guess=0;
printf("Enter a letter:");
scanf("%c", &letter);
for (i=0; i<length; i++) {
if (letter== 'word[i]' && guess==0) {
guess=1;
}
/*if (strchr(letter, word[i])!=NULL && guess==0) {
guess=1;
}*/
}
if (guess=1) {
printf("Correct letter.\n");
}
else {
printf("Wrong letter.\n");
}
//} while();
}
我不知道该怎么做,而且我到处搜索我能做些什么。我不想使用已经制作好的Hang子手游戏,因为我试图教自己为初学者,因为这些代码对于我简单的头脑来说太复杂了。
我想保持我的代码简单,并且可以在上面的代码中看到,一切设置都很简单。我完成代码还有很长的路要走,但我只想在继续之前找到解决此问题的解决方案。
谢谢!
'char word [3] =“car”;' - 呃,哦!这是行不通的。你需要4个字符来存储字符串“汽车”。记住你需要一个额外的字符作为空终止符。 –
你确定你的代码有效吗? O_o,我不是,看看这行'letter =='word [i]'' –