第一次实际在此发布,很兴奋呵呵。

因此,我们从学校得到了这项任务来制作a子手游戏。我已经完成了大多数困难的事情,但是有一件事我似乎无法解决,谷歌也找不到适合我的答案,所以我就在这里。

`int guess()
{
    char letter[0];
    int tries=0;
    for(int i=0;i<length;i++)
    {
        meme[i]='_';
    }
    cout<<meme;
    cout<<"Guess a letter: ";
    cin>>letter;
    while(strlen(letter) >= 2)
    {
        cout<<"Guess a letter: ";
        cin>>letter;
    }
    for(int i=0;i<length;i++)
    {
        if(letter[0]==word[i])
        {
            meme[i]=letter[0];
        }
        else
        {
            //Fel bokstav
        }
        cout<<meme;
    }
}`

“Meme”是空格,发生的是,当我输入正确的字母时,而不是在字符“Meme”中替换“_”,而是在此行中得到了一些东西(假设单词是meme):

“猜字母:m”

“m___m___m_m_m_m_”

如果有人可以帮助我解决这个问题,我将非常感激。提前致谢!

最佳答案

问题是您在cout << meme循环的内执行了for 。因此,meme在您的字符串中每个字符打印一次(所以打印了四次)。要解决此问题,只需将cout << meme移动到下面一行,如下所示:

for(int i=0;i<length;i++)
{
    if(letter[0]==word[i])
    {
        meme[i]=letter[0];
    }
    else
    {
        //Fel bokstav
    }
}
cout<<meme;

关于c++ - 用另一个替换字符数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40228675/

10-11 21:57