Informática, perguntado por Usuário anônimo, 1 ano atrás

Faça uma função em C que:
a) Crie e leia uma palavra de no máximo 30 caracteres
b) Leia um caractere e crie uma palavra que é a copia da anterior, mas excluindo todas as ocorrências desse caractere.

Soluções para a tarefa

Respondido por jvsilvictorox7rfj
1

SEGUE CÓDIGO EM C:


#include <stdio.h>

int main()
{
   
    char palavra_antes[30], palavra_depois[30], c;
    int index = 0;
   
    printf("Informe a palavra: ");
    fgets(palavra_antes, 30, stdin);
   
   
    printf("Informe o caracter: ");
    scanf("%c", &c);
   
   
    for(int i=0 ; i < 30 ; i++)
    {
        if(palavra_antes[i] == c) continue;
       
        palavra_depois[index] = palavra_antes[i];
        index++;
    }
   
    //PALAVRA ANTES
    printf("ANTES:  %s", palavra_antes);
   
    //PALAVRA DEPOIS
    printf("DEPOIS: %s", palavra_depois);
   
   

    return 0;
}



EXEMPLO NA IMAGEM EM ANEXO:



Anexos:

Usuário anônimo: Como dizia o Sr. Burns: "Excelente"!
Usuário anônimo: mas por que o if ficou assim "if(palavra_antes[i] == c) continue;"
jvsilvictorox7rfj: o "continue" faz com que o loop ignore a sequencia e pule pra próxima iteração. Por exemplo: se estiver em " i = 2 " e na posição [2] for o caractere que é pra remover, vai cair no "continue", ou seja, vai pular pro " i = 3" sem copiar o caracter pra "palavra_depois".
jvsilvictorox7rfj: Traduzindo: "Se o caractere da posição [i] for o que eu quero remover, pula/continua pra próxima iteração do for". Então o caractere vai ser ignorado. Entendeu ?
Perguntas interessantes