1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvida com código C

Discussão em 'Programação' iniciada por saunde, 7 de Janeiro de 2007. (Respostas: 1; Visualizações: 558)

  1. saunde

    saunde Power Member

    eu preciso de fazer a função strSubst( char * str, const char *a, const char *b) que, na string str, substitui todas as ocorrências da string a pela string b, retornando o numero de substituições realizadas.
    Exemplo:
    char s[30]="isto parece simples";
    strSubst(s,"parece", "foi") retorna 1 e deixa s com "isto foi simples".


    o meu problema é o seguinte a string que lá está é maior que a string que se vai lá pôr neste caso, mas também pode ser maior, como é que eu faço a substituição ? Eu sei que existe a função strstr( char * s1, char * s2) que retorna o apontador para a primeira ocorrência de s2 em s1, se fossem as strings iguais era só substituir a partir do apontador retornado por esta função, assim não sei como fazer, alguém me pode ajudar ?

    Obrigado
     
  2. PrOdG

    PrOdG Power Member

    Em pseudo codigo, qualquer coisa deste género:
    Código:
    char *new = string com tamanho igual a (str - saida + entrada)
    char *temp = string com tamanho suficiente (pode ser igual a new)
    temp = strstr(str, saida) ;
    
    copia para new (old - temp) chars de old ;
    concatena new com entrada ;
    concatena new com (temp a partir do tamanho de saida) ;
     

Partilhar esta Página