#1 2011-03-19 21:55:20

OskarF

Użytkownik

Zarejestrowany: 2011-02-03
Posty: 38
Punktów :   

4.6

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

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi


Darmowe Forum | Ciekawe Fora | Darmowe Fora
przegrywanie kaset vhs,minidv,hi8,filmów 8mm taśmy led producent kompensatory mocy biernej