Programação Imperativa

100 Questões Fichas Testes/Exames

Questão 25: limpaEspacos

Voltar

Defina urna função int limpaEspacos (char t[]) que elimina repetições sucessivas de espaços por um único espaço. A função deve retornar o comprimento da string resultante.

Exemplo

> char t[] = "a     b   c d       e";
> limpaEspacos(t)
(int) 9
> t
(char *) "a b c d e"

Resolução

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

int limpaEspacos(char t[]) {
    int i;
    for(i = 0; t[i]; i++)
        while(t[i] == ' ' && t[i+1] == t[i])
            tail(t+i+1);
    return i;
}