Ir ao conteúdo
  • Cadastre-se
Miguel Gustavo Wilbert

Apagar determinada letra de uma string

Recommended Posts

Boa tarde!
 
Tenho um exercício onde devo informar:
 
1 letra
1 frase
 
O programa deve correr a string da frase e onde tiver a letra que informei, deve ser apagado da string.
 
Ex:
 
Frase: "Feliz Pascoa!"
Letra: "a"
 
Resultado: "Feliz Psco!"
 
Fiz esse código:
 

#include <stdio.h>

#include <string.h>

 

int main(){

char letra, frase[81];

int i=0;

printf("Digite uma frase.\n");

fgets(frase,sizeof(frase),stdin);

printf("Digite uma letra.");

letra=getchar();

 

for(i=0;i<81;i++){

  if (frase==letra){

      frase=frase[i+1];

  }

  if (frase==frase[i-1]){

      frase=frase[i+1];

  }

}

 

printf("Frase alterada:\n");

printf(frase);

}

 
Só ta apagando a primeira letra achada na string, nas demais não acontece nada.
 
O que tá rolando de errado aí galera?? 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Miguel Gustavo Wilbert

Seria melhor fazer da seguinte forma.

 

Crie um while, faça a procura da letra como você fez aqui:

 if (frase[i]==letra){      frase[i]=frase[i+1];  }

Mas não incremente. 

Coloque um else e jogue o incremento lá: i++;

 

Explicando: Ele vai procurar a letra. Se achar, vai ser substituída pela letra seguinte. Ele vai passar no while novamente verificando aquela mesma posição, já com a letra trocada.

Senão ele só incrementa.

 

Fiz uns ajustes:

#include <stdio.h>#include <string.h> int main(){char letra, frase[81];int i=0;printf("Digite uma frase.\n");fgets(frase,sizeof(frase),stdin);printf("Digite uma letra.");letra=getchar();while(i<81){  if (frase[i]==letra){     int j;     for(j=i; j<81; j++)              frase[j]=frase[j+1];  }  else      i++;} printf("Frase alterada:\n");printf(frase);getch();}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×