Убрать лишние пробелы в последовательности - C (СИ)

Формулировка задачи:

Есть последовательность символов. убрать все лишние пробелы, тоесть из нескольких пробелов ,что стоят подряд, оставить только один


textual

Код к задаче: «Убрать лишние пробелы в последовательности - C (СИ)»

#include <stdio.h>
 
char* Pack(char text[]) {
    char* ptr = text;
    unsigned offs = 0;
    unsigned space = 0;
 
    for (; *ptr; ++ptr) {
        if (*ptr == ' ') {
            space++;
        }
        else {
            if (space) {
                offs += space - 1;
                space = 0;
            }
        }
        *(ptr - offs) = *ptr;
    }
    *(ptr - offs) = 0;
 
    return text;
}
 
int main() {
 
    char text[] = "Hello    World!    I    Am   Student    !";
 
    printf("%s\n", Pack(text));
 
    return 0;
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

15   голосов, оценка 3.667 из 5

Источник
Похожие ответы