Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vhbsouza

[Resolvido] Remoção de Palavra em String

Recommended Posts

Eae Galera!

 

Estou com um problema pra implementar uma função que "remove" palavras de uma string.

 

Alguém pode me ajudar?

 

void removeLigacao(char str[]){
		 int i,j;
		 
		 for (i=0;i<=strlen(str);i++){
		 		if ( (str[i]=='d' && str[i+1]=='e') ){
					 while(str[i+1]!=' '){
		   		 	  for(j=i;j<strlen(str);j++){
									str[j]=str[j+1];
							}
					 }
				}
		 }	
}

O que eu quero fazer é remover da string a palavra "de".

Para isso eu estou encontrando o nome "de" e qro remover!

 

Mais não estou conseguindo fazer...

 

 

Alguém me ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi o motivo do seu "while", tirei ele da função..

e eu nao sei se você quer que fique um espaço no lugar do "de" ou se quer apenas que as palavras fiquem juntas...

se quiser que fiquem juntas, deixe como está nesse codigo:

 

void removeLigacao(char str[]){
                 int i,j;
                 
                 for (i=0;i<=strlen(str);i++)
                                if (str[i-1]==' ' && str[i]=='d' && str[i+1]=='e' && str[i+2]==' ')
                                {
                                         for(j=i-1;j<strlen(str);j++)
                                         str[j]=str[j+4];
                                }
                 puts(str);    //se nao quiser que a string seja impressa, tire esse 'puts'
}

se quiser que fique um espaço:

 

void removeLigacao(char str[]){
                 int i,j;
                 
                 for (i=0;i<=strlen(str);i++)
                                if (str[i-1]==' ' && str[i]=='d' && str[i+1]=='e' && str[i+2]==' ')
                                {
                                         for(j=i;j<strlen(str);j++)
                                         str[j]=str[j+3];
                                }
                 puts(str);
}

acho que era isso..

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi o motivo do seu "while", tirei ele da função..

e eu nao sei se você quer que fique um espaço no lugar do "de" ou se quer apenas que as palavras fiquem juntas...

se quiser que fiquem juntas, deixe como está nesse codigo:

 

void removeLigacao(char str[]){
                 int i,j;
                 
                 for (i=0;i<=strlen(str);i++)
                                if (str[i-1]==' ' && str[i]=='d' && str[i+1]=='e' && str[i+2]==' ')
                                {
                                         for(j=i-1;j<strlen(str);j++)
                                         str[j]=str[j+4];
                                }
                 puts(str);    //se nao quiser que a string seja impressa, tire esse 'puts'
}

se quiser que fique um espaço:

 

void removeLigacao(char str[]){
                 int i,j;
                 
                 for (i=0;i<=strlen(str);i++)
                                if (str[i-1]==' ' && str[i]=='d' && str[i+1]=='e' && str[i+2]==' ')
                                {
                                         for(j=i;j<strlen(str);j++)
                                         str[j]=str[j+3];
                                }
                 puts(str);
}

acho que era isso..

 

 

UAHUAHAUHUAHAUA

 

Então ANA, eu pensei mais um pouco e consegui resolver o problema :D

Eu fiz mais ou menos como você fez!

 

Vou colocar o código aki pra galera ver xD

 

 

void removeLigacao(char str[]){
		 int i;
		 for (i=0;i<=strlen(str);i++){
		 		 if(str[i]==' '){
				            if(str[i+1]=='d'){
						   if(str[i+2]=='3' && str[i+3]==' '){ 
									str[i+1]=' ';
									str[i+2]=' ';
							 }
					  }
				 } 
		 }	
}

 

Obrigado ANA :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.