Наиболее типичными задачами обработки текстов являются задачи синтаксического анализа, которые сводятся к выделению слов из предложений и анализу этих слов. В частности, такие задачи решаются при трансляции и компиляции программ с языков высокого уровня. Основными особенностями структур данных при этом являются следующие.
1. Строка текста или одно слово – одномерный массив символов, а несколько слов – это массив строк (двумерный массив символов).
2. Длина слов в тексте неодинакова. Обычно для разделения слов используются пробелы. Найти пробел в предложении можно, просматривая последовательно каждый его символ. Если очередной пробел найден, то предыдущее слово закончилось.
Формирование отдельных слов может быть осуществлено посимвольно, путем объединения слова (строки) с очередным символом, отличным от пробела (вначале формируемое слово должно быть пустым).
Возможны 2 способа представления текстов:
1) слова разделены всегда одним пробелом;
2) слова разделены одним или несколькими пробелами.
В наиболее часто встречающихся задачах обработки слов выделенные слова (массивы слов) обрабатываются в соответствии с условиями задачи, например, определяются длина слов или осуществляется анализ букв слов.
6.2.2. Выделение слов из текста (слова разделены одним пробелом)
Ввести предложение, в котором слова разделены одним пробелом. Выделить слова, переписать их в массив слов и вывести на экран.
Текст программы, реализующей эту задачу, приведен ниже.
Program GetSl1;
CONST
m = 50; {Максимальное количество слов в предложении}
VAR
Predl : string; {Предложение}
Slovo : array[1..m] of string; {Массив для слов}
n, k, i: integer; {Вспомогательные переменные}
BEGIN
WriteLn('Введите предложение:');
ReadLn(Predl);
n := Length(Predl);
k := 1;
Slovo[k] := ''; {Пустое слово – 2 апострофа подряд}