int main(){
char real_word[200];
char entered_variable;
int counter_1 = 0;
int counter_2 = 0;
cout << "Enter The Word (It will be hidden throughout the game) : ";
cin.getline(real_word, sizeof(real_word));
cout << string(50, '\n'); // clear screen
for (counter_1 = 0; counter_1 < strlen(real_word); counter_1++){
cout << "_ ";
// cout << endl << real_word[counter_1]; JUST a control line
}
for (counter_1 = 0; counter_1 < strlen(real_word); counter_1++){
cout << endl << "Please enter the first letter: ";
cin >> entered_variable;
for (counter_2 = 0; counter_2 < strlen(real_word); counter_2++){
if (strcmp(real_word[counter_1], entered_variable) == 0)
{
cout << entered_variable;
}
else
{
cout << "_ ";
}
}
}
}
if (strcmp(real_word[counter_1], entered_variable) == 0)
导致此错误:
Error 4 error C2664: 'int strcmp(const char *,const char *)' : cannot convert argument 1 from 'char' to 'const char *' */
答案 0 :(得分:0)
您不希望在此处使用strcmp
,而是用于比较字符串。只需看看char
是否匹配,例如:
if (real_word[counter_1] == entered_variable)
答案 1 :(得分:0)
strcmp
是一个比较整个C风格字符串的函数。如果您想比较单个字符,只需使用==
:
if(real_word[counter_1] == entered_variable)
答案 2 :(得分:0)
strcmp
比较字符串(零终止字符数组)而不是字符。虽然字符串只能由一个字符组成,但它们仍然是不同的类型(如包含一个整数的数组与单个整数变量不同)。
为了比较两个字符(单词和保护字符中的单个字符),只需使用==
运算符:
if (real_word[counter_1] == entered_variable)
答案 3 :(得分:0)
问题是strcmp()
期望const char *
作为参数,但这不是您提供的内容(entered_variable
不是const char *
)。实际上,您不需要使用strcmp()
。可以使用
if ( real_word[counter_1] == entered_variable )
现在,我也不明白你在这段代码中需要这么多for循环的原因是什么,比如第三个因为它只是多次打印相同的字符(我觉得你不需要这个)< / p>
答案 4 :(得分:0)
来自here:
int strcmp(const char * str1,const char * str2);
这是strcmp的原型,它表明strcmp需要char *
作为第二个参数,而entered_variable
是char
。所以,你不能在这里使用它。您可能必须使用另一种方法来比较它们。