I'm completely new to C++ and I created this function:
bool guessWord(string compWord)
{
cout << "Guess a letter: ";
string userLetter;
cin >> userLetter;
for (unsigned int x = 0; x < compWord.length(); x++)
{
string compLetter = compWord[x];
if (compLetter == userLetter)
{
return true;
}
}
return false;
}
But it returns to following error: invalid conversion from 'char' to 'const char*' [-fpermissive]
. Can anyone help me understand what this means?
string compLetter = compWord[x];
compWord[x]
gets char
and you are trying to assign it to string
, that's wrong. However, your code should be something like
bool guessWord(string compWord)
{
cout << "Guess a letter: ";
char userLetter;
cin >> userLetter;
for (unsigned int x = 0; x < compWord.length(); x++)
{
char compLetter = compWord[x];
if (compLetter == userLetter)
{
return true;
}
}
return false;
}
string compLetter = compWord[x];
应该
char compLetter = compWord[x];
On this line
string compLetter = compWord[x];
You're assigning a char to a string. Changing it to
char compLetter = compWord[x];
Should do the trick.
compWord[x] gives you the x'th character in string compWord, which you are then trying to assign to a string.
You should either compare both strings directly, or iterate over them in parallel and compare character by character.
You can use std::string::find
to see whether a character is in the string
. If it's not, it returns std::string::npos
:
bool guessLetter(string compWord)
{
cout << "Guess a letter: ";
char userLetter;
cin >> userLetter;
return compWord.find(userLetter) != string::npos;
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.