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

subString em C

Discussão em 'Programação' iniciada por askno, 11 de Dezembro de 2007. (Respostas: 3; Visualizações: 4394)

  1. askno

    askno Power Member

    char *subString (char *str, int inicio, int fim) {
    if (fim > strlen (str) || fim < inicio)
    return NULL;
    char *aux = strdup (str);
    int i;
    for (i = inicio; i <= fim; i++) {
    aux [i - inicio] = str;
    printf ("%c", str);
    }
    aux[fim+1] = '\0'
    return aux;
    }

    int main () {
    char str[] = "O andre foi as compras";
    char *aux = subString (str, 2, 6);
    printf ("\n!%s!", aux);
    return 1;
    }
    resultado
    $ ./a.exe
    andre
    !andrere!

    ele mete mais o re nao percebo o porque... se alguem puder ajudar agradecia []
     
  2. askno

    askno Power Member

    Bem assim ja funciona.. de qualquer das maneiras nao percebo o porque do lixo qd faço com apontadores

    char exemplo2[5];

    void subString2 (char *str, char *str2, int inicio, int fim) {
    int i;
    for (i = inicio; i <= fim; i++)
    str2 [i - inicio] = str;
    }

    int main () {
    char exemplo[] = "O andre foi as compras";
    subString2 (exemplo,exemplo2, 2, 6);
    printf ("\n!%s!", exemplo2);
    return 1;
    }
     
  3. Consu

    Consu Power Member



    Suponho que não seja isso que pretendes, mas sim o seguinte:
    Código:
    aux[i-inicio] = '\0';
    
    O fim tem o comprimento da string original, logo dessa forma ficas sempre com caracteres que não queres. ;)
     
  4. askno

    askno Power Member

    ah yah que estupidez a minha lol.. obrigado
     

Partilhar esta Página