连接字母问题

时间:2014-05-21 10:55:29

标签: c++

你好基本上我试图做一个单词猜谜游戏,一切正常但我不能连接字母,我尝试了所有改变类型,使用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;   

}

2 个答案:

答案 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