const
//Разделители слов.
D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
var
S, SRes : String;
i, Len, Pos1 : Integer;
begin
repeat
Writeln('Задайте строку:');
Readln(S);
Len := Length(S);
SRes := '';
Pos1 := 0;
//Перебор символов строки в направлении справа-налево.
for i := Len downto 1 do begin
//Пропускаем разделители.
if S[i] in D then Continue;
//Отслеживаем конец слова.
if (i = Len) or (S[i + 1] in D) then Pos1 := i;
//Отслеживаем начало слова.
if (i = 1) or (S[i - 1] in D) then begin
//Добавление пробела.
if SRes <> '' then SRes := Sres + ' ';
//Добавляем слово к строке.
SRes := SRes + Copy(S, i, Pos1 - i + 1);
end;
end;
Writeln('Ответ:');
Writeln(SRes);
Writeln('Повторить - Enter. Выход - любой символ + Enter.');
Readln(S);
until S <> '';
end.
const
//Разделители слов.
D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
var
S, SRes : String;
i, Len, Pos1 : Integer;
begin
repeat
Writeln('Задайте строку:');
Readln(S);
Len := Length(S);
SRes := '';
Pos1 := 0;
//Перебор символов строки в направлении справа-налево.
for i := Len downto 1 do begin
//Пропускаем разделители.
if S[i] in D then Continue;
//Отслеживаем конец слова.
if (i = Len) or (S[i + 1] in D) then Pos1 := i;
//Отслеживаем начало слова.
if (i = 1) or (S[i - 1] in D) then begin
//Добавление пробела.
if SRes <> '' then SRes := Sres + ' ';
//Добавляем слово к строке.
SRes := SRes + Copy(S, i, Pos1 - i + 1);
end;
end;
Writeln('Ответ:');
Writeln(SRes);
Writeln('Повторить - Enter. Выход - любой символ + Enter.');
Readln(S);
until S <> '';
end.