vhbsouza 0 Denunciar post Postado Setembro 27, 2009 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
Ana Fontoura 1 Denunciar post Postado Setembro 27, 2009 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
vhbsouza 0 Denunciar post Postado Setembro 27, 2009 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