Удаление подстроки

Задача: 

Удалить из строки ее часть с заданной позиции и заданной длины.

Описание переменных: 

s – строка;
i – номер символа в строке, начиная с которого будет осуществляться удаление;
len – длина удаляемой последовательности символов.

Алгоритм решения задачи: 
  1. Присвоить переменной s произвольную строку.
  2. Записать в i и len первый символ, с которого будет производиться удаление, и длину удаляемой последовательности.
  3. Применить процедуру delete() к строке s.
  4. Вывести на экран строку s.
Программа на языке Паскаль: 

var
    s: string;
    i,len: byte;
begin
    write('Input string: ');
    readln(s);
    write('Place of start to delete: ');
    readln(i);
    write('Length to delete: ');
    readln(len);
    delete(s,i,len);
    writeln(s);
readln
end.

Примечания: 

Процедура delete (s, start, len) удаляет из строки s, начиная с позиции start, подстроку длиной len.

Комментарии

Помогите

Из строки удалить все символы Б
Как решить?

Вот такая задача.

Дана строка символов. Выделить подстроку между первой и последней точкой.
Вот что я хочу сделать: найти позицию первой точки. удалить все до первой точки. найти позицию последней точки. удалить все после последней точки.
Я уже удалил все до первой точки, но не знаю как найти позицию последней точки.

uses crt;
var
  m:string;
  i,n:integer;
Begin
  writeln('введите текст');
  readln(m);
  i:=pos('.',m);
  if i<>0 then
    begin
      delete(m,1,i);

Как найти позицию последней точки??

for i:= length(m) downto 1

for i:= length(m) downto 1 do
if s[i]:=' . ' then break
delete(m,i,length(m)-i);

Удалить из текста слово

Удалить из текста слово <<Шуба>>.

(конкретного текста и указания с тем, сколько дожно быть слов <<Шуба>> нету).

Замена всех одинаковых подстрок на новую

VAR
  s, s_old, s_new: STRING;
  i, l_old: INTEGER;
BEGIN
  {Input}
  Write ('Введите строку ');
  ReadLn (s);
  Write ('Введите подстроку, котрую требуется заменить ');
  ReadLn (s_old);
  l_old := length(s_old);
  Write ('Введите подстроку, котрую требуется вставить на место прежней ');
  ReadLn (s_new);
  {Solution}
  i := 1;
  WHILE i <> 0 DO
    BEGIN
      i := pos(s_old, s);
      IF i <> 0 THEN
      BEGIN
        Delete (s, i, l_old);
        Insert (s_new, s, i);
      END;
    END;
  {Output}
  WriteLn (s);
END.

здравствуйте! подскажите

здравствуйте! подскажите пожалуйста, а как поступить в том случае , если мне нужно удалить из строки все слова, имеющие менее 5 букв.

Примерное решение задачи есть

Примерное решение задачи есть здесь: http://pas1.ru/deletewords