你好基本上我试图做一个单词猜谜游戏,一切正常但我不能连接字母,我尝试了所有改变类型,使用srtcat,追加或+,在下面的代码中问题被注释掉了。我该如何解决?
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string.h>
using namespace std;
int main()
{
time_t t;
srand((unsigned) time(&t));
int randNum = (rand() % 4);
string animals[5] = { "dog",
"fox",
"wolf",
"cat",
"mouse" };
char letters_input;
char placeholder = '_';
bool wordnotfound = true;
char output;
int cnt = 0;
cin >> letters_input;
while (wordnotfound)
{
string word = animals[4];
for(int i=0;i<word.length();i++)
{
if (letters_input == word[i])
{
//strcat(output,word[i]);
//output += word[i];
}
else
{
//strcat(output,placeholder);
//output += placeholder;
cnt++;
}
}
cout << output << endl;
if(cnt == 0)
{
wordnotfound = false;
}
else
{
cin >> letters_input;
cout << output << endl;
}
}
system("pause");
return 0;
}
答案 0 :(得分:1)
主要问题是您尝试连接到单个字符。
而是将字符串设为正确的std::string
,然后您可以使用+=
表达式。
答案 1 :(得分:1)
你正在做的是:
char (=output) + string (=word)
这不起作用,因为您尝试将string
添加到char
,但char
只能容纳一个字符。相反,您需要将输出char*
转换为std::string
。你可以这样做:
std::string(output) + word;
然而,在您的代码中执行此操作的最简单方法是将char output
的类型更改为std::string output
,然后您可以随时执行output + word
。