Информатика и технология программирования


Форматирование строки


Форматирование строки -размещение ее в выходном массиве заданной размерности таким образом, чтобы интервалы между соседними словами отличались не более, чем на 1.

Шаг 1: Исходные данные и результат. Входная строка произвольной длины в массиве IN[], отформатированная строка длины n в массиве OUT[]. Выходная строка отвечает следующим требованиям:



-слово -любая последовательность символов, кроме пробела ;



-после форматирования число пробелов между словами различается не более чем на 1; -первое и последнее слово расположены по краям строки. Шаг 2: Форматирование включает в себя последовательность из трех действий:


void format(char IN[], char OUT[], int n)
{
// Собрать исходные данные по строке,


// необходимые для форматирования;


// Проверить возможность форматирования;


// Разместить слова в выходной строке.


}

Шаг 3: Данные по строке, необходимые для форматирования: -количество слов в строке -nw; -общее количество символов во всех словах -ns; -стандартное количество пробелов между словами при форматировании -np; -оставшееся количество пробелов, добавляемых по одному между словами -nr. На этом шаге детализируется проверка возможности форматирования и определяются взаимосвязанные параметры.


void format(char IN[], char OUT[], int n)
{ int nw, ns, np, nr;
// Определение nw, ns ...


OUT[0] = '\0';
if (nw &#60 2) return; // Мало слов в строке


np = (n - ns) / (nw - 1);
if (np &#60= 0) return; // Много символов в словах


nr = (n - ns) % (nw - 1); // Остаточное число пробелов


// Размещение слов в выходной строке


}

Шаг 4: Просмотр строки при определении параметров и форматировании можно выполнить, используя:



-цикл в цикле: цикл просмотра всех слов, в который включен цикл посимвольного просмотра интервала между словами и самого слова;



-цикл посимвольного просмотра строки, с использованием признака нахождения внутри слова или вне его - inword.

Выберем второй вариант. При этом необходимо учесть, что символ конца строки может рассматриваться как конец слова (разделитель), поэтому проверку на выход из цикла нужно делать после выполнения тела цикла.




Начало  Назад  Вперед



Книжный магазин