Задания № 24, 26 · ЕГЭ

Поиск подстроки

Как проверить, есть ли один фрагмент внутри другого, и определить его начало
2 мин чтенияСложность: Обновлено 29 сентября 2026

Поиск подстроки — это проверка, содержится ли заданный фрагмент в строке, и определение позиции, с которой он начинается. Например, в строке «информатика» подстрока «форма» начинается с третьего символа, если считать позиции с единицы.

Поиск подстроки
Поиск подстроки — операция нахождения всех или некоторых вхождений одной строки, называемой искомой подстрокой, в другой строке. Результатом может быть логический ответ «найдена/не найдена» или позиция начала вхождения. Сама подстрока — это последовательность соседних символов исходной строки.

Как определяется позиция

При последовательном поиске сравнивают искомый фрагмент с участками исходной строки одинаковой длины. Если все символы совпали, найдено вхождение. Обычно позицию считают либо с единицы, либо с нуля — это зависит от языка программирования и принятой в задаче нумерации.

\[s[i\dots i+m-1] = p[0\dots m-1]\]

Здесь \(s\) — исходная строка, \(p\) — искомая подстрока, \(m\) — её длина, а \(i\) — индекс начала совпадения. Формула означает, что подряд идущие символы строки \(s\), начиная с \(i\), равны символам \(p\).

№
Пример

В строке «абракадабра» ищем «кад». Совпадение начинается с символа «к». При нумерации с единицы позиция равна 5, а при нумерации с нуля индекс равен 4. Если ищем только первое совпадение, достаточно остановиться после его обнаружения.

!
Не перепутайте

Поиск подстроки отвечает на вопрос о последовательных символах. Проверка наличия отдельных символов в любом порядке — другая задача. Также позиция первого вхождения и число всех вхождений не всегда совпадают с результатом поиска: для первого результата используется поиск первого вхождения.

Проверка

Какова позиция начала подстроки «дом» в строке «водомёт», если считать позиции с нуля?

Главное за минуту

Главное

  • Подстрока должна состоять из соседних символов исходной строки.
  • Поиск подстроки определяет факт вхождения и, при необходимости, позицию начала.
  • Всегда уточняйте, начинается ли нумерация позиций с нуля или с единицы.