Программа в Паскаль - Обработка строк

Рейтинг: -5Ответов: 1Опубликовано: 20.07.2023

Напишите программу, реализующего обработку строк. Даны строки S и S0.Удалить из строки S первую подстроку, совпадающую с S0.Если совпадающих нет то без изменений S.Язык програмированния - Pascal. Пытаюсь создать программу обработки строк, не судите строго я плохо что понимаю, в ответе видно, ну вряд ли правильно, сыровато... Моя попытка...

cnt :=0;
for i :=1 to N - s do
for j :=i + s to N do
if a[i]*a[j] mod 13 = 0 then
cnt :=cnt +1;
writeln(cnt)

Ответы

▲ 1

Например можно таким образом:

Вариант 1 Формируем новую строку, объединив части S, которые находятся перед и после найденного вхождения S0

var
  S, S0, Response: string;
  Idx: Integer;

begin
  Write('S = ');
  Readln(S);
  Writeln;
  Write('S0 = ');
  Readln(S0);

  // Находим первое вхождения подстроки S0 в строке S
  Idx := Pos(S0, S);

  // Если вхождение найдено, то удаляем его и формируем новую строку 
  if Index > 0 then
  begin
    Response := Copy(S, 1, Index - 1) + Copy(S, Index + Length(S0), Length(S) - Index - Length(S0) + 1);
    Writeln('Response: ', Response);
  end
  else
  begin
    Writeln('Подстрока не найдена');
  end;

  Readln;
end.

Вариант 2 Удаление его с помощью процедуры Delete

var
  S, S0: string;
  Idx: Integer;

begin
  // Ввод исходной строки S и подстроки S0
  Write('S = ');
  Readln(S);
  Writeln;
  Write('S) = ');
  Readln(S0);

  Index := Pos(S0, S);

  // Если вхождение найдено, то удаляем его и выводим результат
  if Index > 0 then
  begin
    Delete(S, Index, Length(S0));
    Writeln('Результат: ', S);
  end
  else
  begin
    Writeln('Подстрока не найдена');
  end;

  Readln;
end.