Var
ptr: integer;
function GetWord(s: string): string;
// Возвращает очередное слово из строки s или пустое значение,
// если в строке больше нет слов.
// Перед вызовом позиция начала слова указывается переменной ptr.
// Перед выходом ptr устаналивается на границу следующего слова
// ptr=0 означает, что вся строка просмотрена.
var
n, p: integer;
begin
n := Length(s);
if (ptr >= n) or (ptr=0) then begin
ptr := 0;
Result := ''
end
else begin
p := PosEx(' ', s, ptr);
if p > 0 then begin
Result := Copy(s, ptr, p - ptr);
ptr := p + 1
end
else begin
Result := Copy(s, ptr, n - ptr + 1);
ptr := 0
end
end
end;
var
s1, s2, s: string;
n: integer;
begin
writeln('Вводите строку');
readln(s1);
ptr := 1;
s2 := '';
repeat
s := GetWord(s1);
n := Length(s);
if n > 0 then
if (s[1] <> 'о') or (s[n] <> 'о') then
s2 := s2 + s + ' '
until n = 0;
n := Length(s2);
if s2[n] = ' ' then
s2 := Copy(s2, 1, n - 1);
writeln('Результирующая строка: ', s2)
end.
Тестовый прогон:
Вводите строку
В это окно отлично виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину.
Результирующая строка: В это виден и прекрасный горный ландшафт, и одинокое облако, зацепившееся за покрытую снегом вершину.