Programação Imperativa

100 Questões Fichas Testes/Exames

Questão 24: remRep

Voltar

Defina uma função int remRep (char x[]) que elimina de uma string todos os caracteres que se repetem sucessivamente deixando lá apenas uma cópia. A função deverá retornar o comprimento da string resultante.

Exemplo

> char x[] = "aaabaaabbbaaa";
> remRep(x)
(int) 5
> x
(char *) "ababa"

Resolução

void tail(char* s) {
    int i;
    for(i = 0; s[i]; i++)
        s[i] = s[i+1];
}

int remRep (char x[]) {
    int i;
    for(i = 0; x[i]; i++)
        while(x[i+1] == x[i])
            tail(x+i+1);
    return i;
}