【发布时间】:2017-01-24 19:38:59
【问题描述】:
我在比较 if 语句中的字符和字符串时遇到问题。
我正在尝试制作一个不太复杂的 Hangman 版本,但我被困在这部分。
我已经尝试了 strcmp() 和 strchr() 以及其他的所有方法,但似乎没有任何效果。
#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 ();
}
我不知道该做什么,我到处寻找我能做什么。我不想使用已经制作的 Hangman 游戏,因为我正在尝试作为初学者自学,因为这些代码对于我简单的头脑来说太复杂了。
我试图让我的代码保持简单,从上面的代码中可以看出,一切都设置得非常简单。我距离完成代码还有很长的路要走,但我只想在继续之前找到解决这个问题的方法。
谢谢!
【问题讨论】:
-
char word[3]="car";- 哦,哦!那是行不通的。您需要 4 个字符来存储字符串“car”。请记住,空终止符需要一个额外的字符。 -
您确定您的代码有效吗? O_o,我不是,看这行
letter== 'word[i]'
标签: c string variables if-statement