1
resposta

Meu código não troca _ pela letra

#include <iostream>
#include <string>
#include <map>
using namespace std;

const string PALAVRA_SECRETA = "MELANCIA ";
char chute;

map <char, bool> chutou; //mapa dos chutes inputados

bool letra_existe (chute){
    for (char letra : PALAVRA_SECRETA){ //itera cada letra da palavra secreta
        if (chute == letra){
            return true;
        }
    }
    return false;
}

int main (){

    bool nao_enforcou = true;
    bool nao_acertou = true;

    while (nao_acertou && nao_enforcou){
        cout << "Escolha uma letra." << endl;
        cin >> chute;

        if (letra_existe){

            chutou [chute] = true;

        }

        for (char letra : PALAVRA_SECRETA){
            if (chutou [letra]){
                cout << letra << " ";
            }else {
                cout << "_ ";
            }
        }

    }

}
1 resposta

Boa tarde Isadora,

Aqui rodou substituindo o _ pela palavra, mas note que no código a palavara melância está toda em maiuscula, recomendo você tratar a entrada de dados usando um UpperCase porque assim, ele vai converter tudo para maiúsculo.

Fica aqui um link que pode ser útil: https://www.programiz.com/cpp-programming/library-function/cctype/toupper

Espero ter ajudado, precisando de algo mais estamos por aqui!

Att.