Поиск 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.
Объяснение кода листинга программы
- В функции Subs объявлены три переменные: s (строка), sb (подстрока) и n (номер вхождения).
- Переменная count инициализируется значением 0.
- Переменная temp инициализируется пустой строкой.
- В цикле for перебираются все символы строки s.
- Для каждого символа в строке temp добавляется текущий символ.
- Если текущий символ не равен подстроке sb, то увеличивается счетчик count.
- Если count равно n, то в переменную subs записывается значение i - длина подстроки + 1, то есть позиция первого вхождения подстроки.
- После завершения цикла temp инициализируется пустой строкой.
- В основной части программы объявлены две переменные: s (строка) и sb (подстрока).
- Значение переменной s заменено на 'маммам мыла раму'.
- Значение переменной sb заменено на 'мам'.
- Вызывается функция Subs с аргументами s, sb и n, равным 2.
- Результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д