Написать процедуру удаления - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Написать процедуру удаления из строки S всех вхождений подстроки Subs.

Решение задачи: «Написать процедуру удаления»

textual
Листинг программы
Procedure DelSubs(pSubs : String; Var pS : String);
Var
  i,k     : Byte;
  m       : array[1..255] of Byte;
Begin
  k:=0;
  For i:=1 to 255 do m[i]:=0;
  For i:=1 to Length(pS)-Length(pSubs)+1 do
    If Copy(pS,i,Length(pSubs))=pSubs then
    Begin
      Inc(k);
      m[k]:=i;
    end;
  For i:=k downto 1 do Delete(pS,m[i],Length(pSubs));
end;
 
Var S, Subs : String;
Begin
  S:='112211221122'; Subs:='12';
  DelSubs(Subs,S);
  Writeln(S);
end.

Объяснение кода листинга программы

  1. В процедуре DelSubs объявлены две переменные: pSubs (строка, в которую будут заменены подстроки) и pS (исходная строка, в которой будут найдены подстроки).
  2. Объявлены две переменные типа Byte: i и k. Переменная i используется для цикла, а переменная k - для подсчета количества найденных подстрок.
  3. Создается массив m размером 255, заполняемый нулями. Этот массив будет использоваться для хранения индексов найденных подстрок.
  4. Запускается цикл, в котором для каждой цифры от 1 до 255 значение переменной m[i] увеличивается на единицу, если в исходной строке pS найдена подстрока, соответствующая текущей цифре.
  5. После завершения первого цикла запускается второй цикл, в котором для каждой подстроки, найденной в исходной строке pS, удаляется соответствующий символ.
  6. В конце процедуры значение переменной k сравнивается с 1. Если k равно 1, это означает, что в исходной строке pS была найдена хотя бы одна подстрока, соответствующая подстроке pSubs. В этом случае в исходную строку pS заменяются все символы, соответствующие найденным подстрокам.
  7. В основной части программы объявлены две переменные: S и Subs. Переменная S инициализируется строкой '112211221122', а переменная Subs - строкой '12'.
  8. Запускается процедура DelSubs, передавая в нее подстроку Subs и исходную строку S.
  9. Выводится на экран строка S после выполнения процедуры DelSubs.

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы