Ir ao conteúdo
  • Cadastre-se

O que há de errado com a função?


Posts recomendados

qual é o erro?, o programa está fechando quando executa a seguinte função:  

 

void preenche_palavra (char palavra [70], char palavra_chute [70], char palpite)

{

    int i, j;

    j = strlen(palavra);

    for (i = 0; i <= j; i++)

    {

        if (palavra == palpite)

            palavra_chute = palpite;

    }

}

Link para o comentário
Compartilhar em outros sites

Não há nada errado com a função em si.

Mas você pode evitar problemas se atribuir nulo ao vetor palavra_chute, por exemplo:

   int i, j;   j = strlen(palavra);   palavra_chute[j] = 0x0;   ...
Além disso é bom você evitar a exibição de lixo da memória, carregando a string do chute na função principal:

   char chute[70];   ...   memset(chute, ' ', 69);   ...   preenche_palavra(palavra, chute, palpite);   printf("%s\n", chute);   ...
  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Não se pode fazer a comparação e associar valores como você imagino, você perceberá melhor o seu erro se voltar a estudar; tipos primitivos e suas propriedades em C linguagem.

 

Não entendi o que você falou.

Nem a comparação feita (são chars, não strings) nem a atribuição estão erradas.

Link para o comentário
Compartilhar em outros sites

Não entendi o que você falou.

Nem a comparação feita (são chars, não strings) nem a atribuição estão erradas.

Agora que abri no web browser percebi que o tapatalk oculta os colchetes. Foi isso que me levou a pensar que havia erro nos tipos. Retiro o que disse no post anterior.
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

Fiz um ajuste no for, para percorrer corretamente o vetor de char. E no lugar de strlen, use sizeof para obter o tamanho do vetor. Faça o teste e veja se funcionou corretamente.

void preenche_palavra (char palavra [70], char palavra_chute [70], char palpite){    int i, j;    j = sizeof(palavra);    for (i = 0; i < j; i++)    {        if (palavra[i] == palpite)            palavra_chute[i] = palpite;    }}
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...