Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- void finds(string First_String, string Second_String, int Len_Of_Substr) // Ищем все схожие подстроки строк First_String и
- { // Second_String c длиной Len_Of_Substr и больше ее
- if(First_String.length() < Second_String.length() ) // ____________________
- swap(First_String , Second_String); // Если Длина первой строки меньше второй - меняем их
- Len_Of_Substr--;
- int Len1 = First_String.length(); // Присваиваем Длину первой строки
- while (Len_Of_Substr < Len1) // Пока Длина подстроки меньше Длины первой строки
- {
- int j = 0; // Счетчик, показывающий позицию в первой строке
- while(j + Len_Of_Substr < Len1) //Пока Подстрока не дошла до конца первой строки
- {
- string Substr = "" ; //Создаем пустую Подстроку
- for(int k = j ; k <= j + Len_Of_Substr ; k++)
- {
- Substr = Substr + First_String[k]; // Substr += First_String[k];
- }
- int Amount = Second_String.find(Substr); //Создаем переменную, которая будет показывать количество
- //Подстрок данного экземпляра
- if(Amount >= 0) //и если такая была найдена
- cout << Substr << endl; //Выводим ее
- j++; //Увеличиваем позицию
- }
- Len_Of_Substr++; //Увеличиваем длину подстроки
- }
- }
- int main()
- {
- string c = "aaaaabcdefg";
- string c2 = "abcde";
- finds(c,c2, 3);
- return 0;
- }
Add Comment
Please, Sign In to add comment