michalxi1410 Temat założony przez niniejszego użytkownika |
Kurs C++ Wyszukiwanie frazy w tekście » 2016-02-13 17:29:47 Witam, mam problem z pracą domową z kursu C++, w linii size_t wyszukana_pozycja = tekst.find(wyraz1, wyraz2); pokazuje błąd, ale gdy jest jeden string w nawiasie jest dobrze, więc jak mam to poprawnie wpisać? #include<iostream> using namespace std;
bool szukaj( string & tekst, string wyraz1, string wyraz2 ) { size_t wyszukana_pozycja = tekst.find( wyraz1, wyraz2 ); if( wyszukana_pozycja == string::npos ) { return false; } do { wyszukana_pozycja = tekst.find( wyraz1, wyszukana_pozycja + wyraz1.size() ); wyszukana_pozycja = tekst.find( wyraz2, wyszukana_pozycja + wyraz2.size() ); } while( wyszukana_pozycja != string::npos ); return true; }
void wypisz_wynik( bool czy_znaleziono ) { if( czy_znaleziono == true ) cout << "Znaleziono" << endl; else cout << "Nie znaleziono" << endl; }
int main() { string napis = "Zadanie domowe z kursu C++ (http//cpp0x.pl) - najlepszy kurs C++ w Internecie!"; wypisz_wynik( szukaj( napis, "ada", "kurs" ) ); wypisz_wynik( szukaj( napis, "ada", "taki" ) ); wypisz_wynik( szukaj( napis, "C++", "cpp0x" ) ); wypisz_wynik( szukaj( napis, "C#", "cpp0x" ) ); return 0; }
|
|
carlosmay |
» 2016-02-13 17:38:42 w linii size_t wyszukana_pozycja = tekst.find(wyraz1, wyraz2); pokazuje błąd, ale gdy jest jeden string w nawiasie jest dobrze, więc jak mam to poprawnie wpisać? |
Z jednym stringiem w nawiasie. Jeszcze raz przeczytaj temat (uważnie). |
Funkcja bool szukaj( string & tekst, string wyraz1, string wyraz2 ) { return false; } Obecnie mocno przekombinowane. |
|
michalxi1410 Temat założony przez niniejszego użytkownika |
» 2016-02-13 18:26:12 W koncu doszedlem co i jak dzieki! #include<iostream> using namespace std;
bool szukaj( string & tekst, string wyraz1, string wyraz2 ) { size_t wyszukana_pozycja = tekst.find( wyraz1 ); if( wyszukana_pozycja != string::npos ) { size_t( wyszukana_pozycja = tekst.find( wyraz2 ) ); if( wyszukana_pozycja != string::npos ) return true; else return false; } return false; }
void wypisz_wynik( bool czy_znaleziono ) { if( czy_znaleziono == true ) cout << "Znaleziono" << endl; else cout << "Nie znaleziono" << endl; }
int main() { string napis = "Zadanie domowe z kursu C++ (http//cpp0x.pl) - najlepszy kurs C++ w Internecie!"; wypisz_wynik( szukaj( napis, "ada", "kurs" ) ); wypisz_wynik( szukaj( napis, "ada", "taki" ) ); wypisz_wynik( szukaj( napis, "C++", "cpp0x" ) ); wypisz_wynik( szukaj( napis, "C#", "cpp0x" ) ); return 0; }
|
|
Gibas11 |
» 2016-02-13 18:30:19 bool szukaj( string & tekst, string wyraz1, string wyraz2 ) { if( tekst.find( wyraz1 ) != string::npos and tekst.find( wyraz2 ) != string::npos ) return true; return false; }
|
|
carlosmay |
» 2016-02-13 18:33:07 size_t wyszukana_pozycja = tekst.find( wyraz1 ); if( wyszukana_pozycja != string::npos ) { size_t wyszukana_pozycja = tekst.find( wyraz2 ); if( wyszukana_pozycja != string::npos ) return true; else return false; } |
Czemu nie złożysz tych dwóch if'ów w jeden? Złóż dwa warunki w jeden złożony. Edit: jak wyżej (Gibas11). |
|
michalxi1410 Temat założony przez niniejszego użytkownika |
» 2016-02-13 18:41:53 O faktycznie spora zmiana, będę musiał się dokładniej przygladać temu co piszę :D |
|
« 1 » |