Napisz funkcje strfind, która szuka w tekście (pierwszy parametr) podanej frazy
(drugi parametr). Wynikiem funkcji ma być indeks znaku, od którego podana
fraza zaczyna się w tekście lub -1, jeżeli tekst nie zawiera szukanej frazy. Wielkość
liter w podanych ciągach nie ma znaczenia.
Przykład:
Dla podanego fragmentu programu:
char zdanie[] = "Jutro jest egzamin z programowania.";
char fraza[] = "Program";
cout << "Szukam w \"" << zdanie << "\"" << endl;
cout << "\t\"" << fraza << "\" : " << strfind(zdanie, fraza) << endl;
cout << "\t\"jutro JEST\" : " << strfind(zdanie, "jutro JEST") << endl;
cout << "\t\"WDI\" : " << strfind(zdanie, "WDI") << endl;
cout << "Szukam w \"" << fraza << "\"" << endl;
cout << "\t\"" << zdanie << "\" : " << strfind(fraza, zdanie) << endl;
cout << "\t\"" << fraza << "\" : " << strfind(fraza, fraza) << endl;
na ekranie powinno zostać wyświetlone:
Szukam w "Jutro jest egzamin z programowania."
"Program" : 21
"jutro JEST" : 0
"WDI" : -1
Szukam w "Program"
"Jutro jest egzamin z programowania." : -1
"Program" : 0
#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
int strfind(char* tekst, char* fraza);
int main()
{
char zdanie[] = "Jutro jest egzamin z programowania.";
char fraza[] = "Program";
char fraza2[] = "jutro JEST";
char fraza3[] = "WDI";
cout << "Szukam w \"" << zdanie << "\"" << endl;
cout << "\t\"" << fraza << "\" : " << strfind(zdanie, fraza) << endl;
cout << "\t\"jutro JEST\" : " << strfind(zdanie, fraza2 ) << endl;
cout << "\t\"WDI\" : " << strfind(zdanie, fraza3 ) << endl;
cout << "Szukam w \"" << fraza << "\"" << endl;
cout << "\t\"" << zdanie << "\" : " << strfind(fraza, zdanie) << endl;
cout << "\t\"" << fraza << "\" : " << strfind(fraza, fraza) << endl;
cin.get();
return 0;
}
int strfind(char* tekst, char* fraza)
{
for(int i=0;i<strlen(tekst);i++) tekst[i]=tolower(tekst[i]);
for(int i=0;i<strlen(fraza);i++) fraza[i]=tolower(fraza[i]);
char* ciag = strstr(tekst,fraza);
if(NULL==ciag) return -1;
else return ciag-tekst;
}
Offline