Pascal. Задача 5-10
Записать в массив слова из введенной пользователем строки с не более, чем десятью словами. Вывести массив вместе с номерами слов
Примечание: Между словами может быть более одного пробела.
Решение
var
s :string;
i, p, cnt : integer;
A : array[1..10] of string;
begin
write('Введите текст: ');
read(s);
cnt := 0;
i := 1;
while i <= Length(s) do begin
// Пропускаем подряд идущие пробелы
while (i < Length(s)) AND (s[i] = ' ') do Inc(i);
// Ищем позицию пробела, ограничивающего слово справа
p := Pos(' ', s, i + 1);
if p > 0 then begin
// Копируем слово в элемент массива
Inc(cnt);
A[cnt] := Copy(s, i, p - i);
i := p + 1;
end
else if i <= Length(s) then begin
// последнее слово строки в элемент массива
if s[i] <> ' ' then begin
Inc(cnt);
A[cnt] := Copy(s, i, Length(s) - i + 1);
end;
break;
end;
end;
for i := 1 to cnt do writeln(i, ': ', A[i]);
end.