Пацаны, привет! Я уже пару дней обхожу весь Инет и в частности читаю все, что есть на этотм форуме, но проблему не могу решить. Не хотел вам беспоеоить, но пришлось. Итак, мне нужно сравнить две строки. Если во второй встречаются любые последовательности символом первой.
Нашел в Инете такую программу, но в не есть ошибка (я ее выделил !!! !!! )
Вот ее задача.
Задание 3.13. Вхождение строки с разрядкой
Строка S2 может входить в более длинную строку S1 в общепринятом смысле, когда непрерывная подпоследовательность символов строки S1совпадает с цепочкой символов S2. Однако возможна и другая ситуация, когда строка S2 входит в строку S1 с разрядкой. При этом символы S2 с равномерным шагом через 1, 2, 3 или более символов встречаются в строке S1.
Например, для строк S1="ABCBEEC" и S2="ABC" имеют место обычное (с нулевым шагом разрядки) вхождение (символы 1, 2 и 3 в строке si) и вхождение с разрядкой в 2 символа (символы 1, 4 и 7 в строке S1).
Составить программу, которая:
запрашивает и вводит анализируемые строки S1 и S2;
определяет, входит ли строка S2 в S1, выдает шаг разрядки и номера соответствующих позиций в строке si.
Задача программы — определить все возможные варианты вхождения S2 в S1.
Совет 1 (общий)
Идея поиска довольно проста. Обозначим через h шаг по индексу в строке S1, с которым выбираются символы, сравниваемые с символами S2. Для нулевой разрядки h=l, для выборки через символ h=2 и т. д. Очевидно, что начинать
сравнение надо с символа S1[I], совпадающего с первым символом S2. Однако реализация этой идеи может быть разной. Например, из строки si можно извлечь с заданной разрядкой нужное число символов и результат сравнить с S2. Более эффективно совместить эти две операции и сравнивать извлекаемый из S1 символ с очередным символом S2, прекращая выборку при первом несовпадении. Указанный подход был реализован победителем областной студенческой олимпиады В. Мартьяновым (апрель 2000 г.), на базе программы которого и построены приведенные ниже примеры. Наиболее оригинальной, на наш взгляд, является проверка условия (h=l) или (L2>1). Здесь L2—длина второй строки.
Программа 3_13.pas
Улучшенная версия: (избавляемся от Goto)
Огромное спасибо!
Я ее пропустил - все работает, сейчас буду разбираться в исправлениях.
Еще раз искреннее спасибо! Приятно...