В заданной последовательности слов найдите все слова, начинающиеся с заданной приставки — Pascal(Паскаль)

var i:integer;
                  st:string;                             {строка}
                  s:char;                                {приставка}
begin
 writeln('Введите строку слов:');
 readln(st);
 write('Введите бприставку: ');
 readln(s);
 st:=' '+st; {добавляем пробел в начале строки}
 repeat                       
  i:=pos(' '+s,st); {ищем слово на букву s}
  inc(i); {пробел не считаем}
  if i<>1 then {если слово нашли то}
   repeat
   write(st[i]); {напечатать букву найденного слова}
   delete(st,i,1); {удалить эту букву}
   until (st[i]=' ')or(i=length(st)); {если слово кончилось то конец цикла}
  writeln;
 until  i=1; {если больше нет найденных слов то КОНЕЦ ЦИКЛА}
 writeln('st=',st);
end.

Следующий вариант

uses
  crt;
const
  dividers = [' ',',','.',';',':','-','=','+'];
var
  s,pri,temp:string;
  i:integer;
begin
  ClrScr;
  ReadLn(s,pri);
  temp:='';
  for i:=1 to Length(s) do
  begin
    if not (s[i] in dividers) then
      temp:=temp+s[i];
    if ((s[i] in dividers) or (i=Length(s))) and (temp<>'') then
    begin
      if Pos(pri,temp)=1 then
        Write(temp,' ');
      temp:='';
    end
  end
end.

Leave a Comment

49 − = 42