Olá, estou estudando C++ e andei dando uma olhada nos codigos antigos que eu havia feito para tentar corrigi-los ou até refaze-los se necessario com o que aprendi e me deparei com este erro (que está abaixo). Sei que isso não é valido mas não sei o motivo, o compilador até tenta explicar mas é muito vago. Alguém saberia o por que isso ocorre?
ERRO APONTADO PELO COMPILADOR:
/home/bleszerd/Atom/C++/0001/main.cpp: In function ‘int main()’:
/home/bleszerd/Atom/C++/0001/main.cpp:51:35: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
51 | if(letra == palavraSecreta[i]) //O ERRO ESTÁ NESSA LINHA!
| ^
/home/bleszerd/Atom/C++/0001/main.cpp:53:24: error: invalid conversion from ‘char’ to ‘char’ [-fpermissive]
53 | tabuleiro[i] = letra;
| ^~~~~
| |
| char
CÓDIGO:
/*
TARGET:
# OS: FEDORA-LINUX-X86_64 31.0.1a with KDE Plasma
# DATE: 04/11/2019 - América (São Paulo)
# G++ | GCC for GNU/LINUX
# IDE: ATOM with C++ ext. and completion
*/
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
char palavraSecreta[30], tabuleiro[30], letra[1];
int letras = 0, vidas = 0;
cout << "Digite a palavra secreta: "; //Recolhe a palavra e limpa a tela
cin >> palavraSecreta;
system("clear");
for(int i = 0; i < 30; i++) //Marca todo o array com '_'
{
tabuleiro[i] = '_';
}
for(int i = 0; i <= 30; i++) //Calcula a quantidade de letras
{
if(palavraSecreta[i] != '\0')
{
letras++;
}
else
{
break;
}
}
for(int i = 0; i < letras; i++) //Imprime o jogo. Ex (MARCOS) : _ _ _ _ _ _ #OBS -> Há um espaço a mais no final
{
cout << tabuleiro[i] << " ";
}
while(true)
{
cout << "\nDigite uma letra: ";
cin >> letra;
for(int i = 0; i < letras; i++)
{
if(letra == palavraSecreta[i]) //O ERRO ESTÁ NESSA LINHA!
{
tabuleiro[i] = letra;
}
}
}
}
Agradeço desde já por qualquer ajuda.