Регистрация
27 Окт 2013
Сообщения
80
Репутация
-3
Спасибо
0
Монет
0
Разработать алгоритм и программу ускоренного линейного



поиска. В качестве исходных данных использовать строку текста, из



которой необходимо выделить слова. Аргумент поиска – слово. Помогите пожалуйста.
 
В С++ есть функции поиска вхождения подстроки в строку. Дальше всё вроде бы просто. Если нужна работающая прога - 2000 р на карту и пару дней подождать, работы много очень
 
#include <iostream>
#include <vector>
using namespace std;

bool foo(const string&str,const string&prov,size_t& it)
{
size_t iter = 1;
for (auto i = it; i < str.length(); i++)
{
if (str != prov[iter])
{
it = i; return false;
}
if (prov.length()-1 == iter)
{
it = i; return true;
}
iter++;
}
return false;
}
int main()
{
vector<size_t>index;
string str = "String is wery usefull class. Another class not one.";
string f = "class";
size_t temp{};
for (size_t i = 0; i < str.length(); i++)
{
if (str == f[0])
{
temp = i;
if (foo(str, f, ++i)) index.push_back(temp);
}
}
if (index.size())
{
cout << "Find " << index.size() << " entries at positions:\n";
for (auto& i : index) cout << i << " ";
}
//end of programm
}
 
Назад
Сверху