Witam.
Mam do zrobienia pewien projekt, niestety trochę ciężko mi to ugryźć, zakopałem się w pewnym momencie i brak mi pomysłu na to dlatego też postanowiłem poprosić Was o pomoc.
Zadanie polega na tym aby użytkownik wprowadził zdanie z klawiatury i w zależności od zawartych tam fraz komputer ma wykonać odpowiednią czynność a konkretnie zwrócić datę. Np "jaki jutro jest dzien" wynik: jutrzejsza data. Postanowiłem więc, że zacznę od "mechanizmu" rozpoznawania tych fraz, niestety nie do końca mi to działa.
Oto kod:
#include <iostream>
#include <string>
#include <conio.h>
#include <cstdio>
#include <cstring>
using namespace std;
void wyszukiwanie(string& , string );
int main()
{
const int rozmiar = 3;
string slowaSzukane[rozmiar] = {"dzisiaj", "dzis", "jutro"};
string zdanie;
cout << "Daj zdanie: ";
getline(cin, zdanie);
for(int i=0;i<rozmiar;i++)
{
wyszukiwanie(zdanie, slowaSzukane[i]);
}
return 0;
}
void wyszukiwanie(string& tekst, string fraza)
{
size_t znalezionaPozycja = tekst.find(fraza);
if(znalezionaPozycja == string::npos)
{
return;
}
do
{
cout << "Znalezione slowo to: " << fraza;
znalezionaPozycja = tekst.find( fraza, znalezionaPozycja + fraza.size() );
}while(znalezionaPozycja != string::npos);
}
W związku z tym mam kilka pytań:
Czy funkcja find jest odpowiednia do tego typu zadań ?
Czy lepszym wyjściem byłoby zwrócenie przez funkcję "wyszukiwanie" znalezionej pozycji ?
Serdecznie proszę o radę i pozdrawiam.
Z góry dziękuję.