Поиск N-го вхождения подстройки в строку - Pascal ABC

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

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

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

Решение задачи: «Поиск N-го вхождения подстройки в строку»

textual
Листинг программы
function Subs(s, sb: string; n: integer): integer;
var
  i, count: integer;
  temp: string;
begin
  count := 0;
  temp := '';
  for i := 1 to length(s) do
  begin
    temp := temp + s[i];
    if pos(sb, temp) <> 0 then
    begin
      inc(count);
      if count = n then
        subs := i - length(sb) + 1;
      temp := ''
    end;
  end;
end;
 
var
  s, sb: string;
 
begin
  s := 'маммам мыла раму';
  sb := 'мам';
  writeln('Подстрока начинается с ', Subs(s, sb, 2), ' позиции.');
end.

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

  1. В функции Subs объявлены три переменные: s (строка), sb (подстрока) и n (номер вхождения).
  2. Переменная count инициализируется значением 0.
  3. Переменная temp инициализируется пустой строкой.
  4. В цикле for перебираются все символы строки s.
  5. Для каждого символа в строке temp добавляется текущий символ.
  6. Если текущий символ не равен подстроке sb, то увеличивается счетчик count.
  7. Если count равно n, то в переменную subs записывается значение i - длина подстроки + 1, то есть позиция первого вхождения подстроки.
  8. После завершения цикла temp инициализируется пустой строкой.
  9. В основной части программы объявлены две переменные: s (строка) и sb (подстрока).
  10. Значение переменной s заменено на 'маммам мыла раму'.
  11. Значение переменной sb заменено на 'мам'.
  12. Вызывается функция Subs с аргументами s, sb и n, равным 2.
  13. Результат выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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