字母连接问题

Concatenate letters problems

本文关键字:问题 连接      更新时间:2023-10-16

嗨,基本上我想做一个猜字游戏,一切都很好,但我只是不能连接字母,我尝试了一切改变类型,使用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;   

}

主要问题是您试图连接到单个字符

将字符串改为合适的std::string,然后可以使用+=表达式。

你要做的是:

char (=output) + string (=word)

这不起作用,因为您试图将string添加到char,但char只能容纳一个字符。相反,您需要将输出char*转换为std::string。你可以这样做:

std::string(output) + word;

在代码中做到这一点的最简单的方法是简单地将char output的类型更改为std::string output,然后您可以在任何您喜欢的地方执行output + word