Hoj,
mám takový menší problém. Algoritmus na hledání výskytu řetězce v řetězci jsem (doufám) napsal správně. Avšak poté co jsem do programu dopsal opakování hledání v už jednou zadaném řetězci to přestalo fungovat tak jak bych si představoval. Nebo lépe řečeno, začalo to počítat počet znaků místo hledání výskytu. Mám dojem že mi něco zůstalo trčet ve vstupním proudu, ale nevím jak se toho zbavit či jestli je můj dojem správný. Za pomoc budu opravdu vděčný.
#include <iostream>
#include <string>
using namespace std;
int bruteForceFinding(string &text,string &sample);
int main()
{
string text;
string sample;
string que;
cout << "Zadejte text ve kterem se bude hledat: ";
getline(cin,text);
for (;;)
{
cout << "Zadejte vzorek ke hledani: ";
getline(cin,sample);
cout << "Pocet vyskytu slova " << sample << " je " << bruteForceFinding(text,sample) << endl;
cout << "--------------------------------------------------------------------------------" << endl;
cout << "Chcete opakovat hledani? [ano,ne]: ";
cin >> que;
if (que=="ne")
break;
}
return 0;
}
int bruteForceFinding(string &text,string &sample)
{
int x;
int y;
int i;
int number=0;
int sizeText=0;
int sizeSample=0;
sizeText=text.size();
sizeSample=sample.size();
for (i=0;i<=sizeText;++i)
{
for (x=0,y=i;x<=sizeSample;++x,++y)
{
if (text[y]!=sample[x])
break;
}
if (x==sizeSample)
++number;
}
return number;
}