Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран слова, содержащие три буквы — Pascal(Паскаль)

uses crt;
const rzd=[' ',',',';',':','!','?','.'];{разделители можно добавить, зависит от текста}
var  s,s1:string;
     k,i: integer;
     c:char;
begin
clrscr;
writeln('Введите текст, окончание ввода точка:');
s:='';
repeat
c:=readkey;
write(c);
s:=s+c;
if c='.' then writeln;
until c='.';
for i:=length(s) downto 1 do
  begin
    if s[i] in rzd then s[i]:='.';{заменим разделители на точку}
    while pos('..',s)>0 do   {если подряд 2 точки}
    delete(s,pos('..',s),1); {1 удаляем}
  end;
writeln('Слова из 3 букв:');
k:=0;
while pos('.',s)>0 do {пока есть точки}
 begin
  s1:=copy(s,1,pos('.',s)-1);{копируем первое слово в массив}
  if length(s1)=3 then
   begin
     write(s1,' ');{если 3 буквы-выводим}
     k:=1;
    end;
  delete(s,1,pos('.',s));{удаляем его}
 end;
if k=0 then write('Слов из 3 букв нет!');
readln
end.

Leave a Comment

+ 8 = 17