Não entendi porque aparece esse problema:** comparison of integer expressions of different signedness: 'int' and 'size_t'**
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Não entendi porque aparece esse problema:** comparison of integer expressions of different signedness: 'int' and 'size_t'**
Oi, tudo bem?
Isso acontece porque a função strlen() retorna um valor inteiro sem sinal, o unsigned int. Quando o compilador olha para os dois valores, vê de um lado um número inteiro normal e no outro um inteiro sem sinal. Em geral, ele consegue fazer a comparação e nos dar o resultado se os números são iguais ou não, mas gera esse warning, que é bem chatinho.
Para resolver isso, tem algumas maneiras, dentre elas:
i como unsigned int:for(size_t i = 0; i < strlen(palavra_secreta; i++){
// código omitido
}for(int i = 0; i < (int) strlen(palavra_secreta; i++){
// código omitido
}Assim, o compilador vai considerar o retorno da função como um inteiro normal.
Fazendo qualquer uma dessas alterações, o alerta deve sumir e o código continuar funcionando normalmente.
Para conhecer mais sobre tipos de dados em C, recomendo a leitura da página de tipos de dados na linguagem C, do GeeksForGeeks, que está em inglês mas caso seja necessário, você pode utilizar a ferramenta de tradução do seu navegador para de auxiliar.
Em caso de dúvidas, estou à disposição.
Um grande abraço e bons estudos!