Выравнивание текста по ширине

В этой статье вашему вниманию будет представлен исходный текст и разбор программы, выравнивающей текст по ширине, за счет увеличения количества пробелов между словами.

Итак, имеется матрица символов размером [n, m], предполагается, что в каждой строке есть хотя бы один пробел, за которым следует любой другой символ. За счет изменения групп пробелов каждой строки нужно добиться того, что бы текст был выровнен по ширине, при этом внутри одной строки количество пробелов в каждой группе пробелов между словами должно отличаться не более чем на единицу.

Ввод и вывод будем осуществлять из файла.

Поясню, что происходит в коде программы построчно:

5-6: Открываем файл input.txt для чтения входных данных.

9-15: Ищем самую длинную строку и заносим ее длину в переменную m.

16: Возвращаемся к началу файла.

17-18: Открываем или создаем файл output.txt для вывода результата работы программы.

21-49: Цикл от начала, до конца входного файла. Запоминаем текущую позицию начала данной строки во входном файле, считаем количество пробелов в этой строке, возвращаемся к началу этой строки, посимвольно выводим в output.txt текущую строку с нужным количеством пробелов между словами, тем самым выравниваем текст по ширине, обрабатываем так же следующую строчку, и так до конца файла.

50-51: Закрываем входной и выходной файлы.

Демонстрация работы программы. Исходной текст:

AlignTextToTheWidth1

Обработанный текст, выровненный по ширине:

AlignTextToTheWidth2

Скачать исходник можно, нажав на кнопку ниже.

Скачать исходник

 

Выравнивание текста по ширине
5 (100%) 1 vote

Поделиться в соц. сетях:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">