Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОМП. НАУКИ_1сем.doc
Скачиваний:
6
Добавлен:
05.11.2018
Размер:
902.14 Кб
Скачать

Выделение слов из строки

Дана строка, которая начинается с произвольного числа пробелов и состоит из слов, разделенных произвольным числом пробелов. Выделить слова из строки и поместить в массив из слов.

Строка S

cлово1

cлово2

...

словоj

Массив MW

cлово1

cлово2

. . .

словоj

jaw

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

Const N=100;

type ArrWords=array[1..N] of ShortString;

procedure Str2Words(var S: ShortString; var AW:ArrWords; var jaw:integer);

Const Blank=' '; {Пробел}

var i,j,L:byte;

begin

i:=1;

jaw:=0; {jaw равен количеству слов в массиве AW. Пока массив пустой}

L:=Length(S);

while (i<=L) and (S[i]=Blank) do {Пропуск ведущих пробелов в начале строки}

inc(i);

while (i<=L) do {Цикл выделения слов из строки S и копирование их в массив AW}

begin

j:=i; {j устанавливается на начало слова в строке S}

while (i<=L) and (S[i]<>Blank) do {Пропуск символов, не являющихся пробелами,

inc(i); до пробела после слова или до конца строки}

inc(jaw); {Переход к следующему слову в массиве слов AW}

AW[jaw]:=Copy(S,j,i-j); {Копирование слова из строки в массив слов}

while (i<=L) and (S[i]=Blank) do {Пропуск пробелов после слова}

inc(i);

end

end;