• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Llaverola

Eliminar todas substrings numa outra string

2 mensagens neste tópico

ola pessoal. fiz uma programa que elimina uma substring numa outra string

exemplo: STR = RICARDO COELHO, SUBSTR=COELHO; ele elimina o coelho. até aki td bem. mas agora quero eliminar TODAS  as substrings e n apenas uma..

STR= RICARDO COELHO COELHO. SUBSTR= COELHO...quero q elimine os dois COELHO e n apenas um.

o codigo a seguir elimina apenas um. preciso da vossa ajuda para fazer alguma modificação no codigo abaixo para conseguir eliminar TODAS as substrings. obrigado APENAS INSERI A FUNÇÃO. n inseri o main, se for necessario insiro. ajudem-me. obrigado

char *del_sub(char str[], char sub[])
{
    int i, j, len, len2, pos,x=0;
    char *s;
    
    

                         
     len  =  strlen(str); //tamanho da string
     s    =  strstr(str, sub); //sub dentro de str (endereço)
     pos  =  s - &str[0];  //endereço da sub na str - endereço do 1º caracter de str
     len2 =  strlen(sub); // tamanho da substring
     
     for (i=pos;i<=len-len2; i++) // tamanho inicial menos o da substring.
     
     /**tenho ricardo, quero tirar o car
     o str=7 e o substr=3. 7-3 = 4. quer 
     dizer que vão sobrar 4 caracteres na 
     string final (RIDO) por isso vai desde
     pos que é 2 até á posiçao 4 e vai eliminando*/
     
     {
         str[i]=str[i+len2];
     }
          

}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens que pôr o código que tens aí dentro de um loop que não pára enquanto strstr não der NULL.

Pensa em

while ((s = strstr(str, sub)) != NULL)

e adapta o teu código :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora