Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kurs C++ Wyszukiwanie frazy w tekście

Ostatnio zmodyfikowano 2016-02-13 18:41
Autor Wiadomość
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ć?

C/C++
#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;
}
P-144821
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
C/C++
bool szukaj( string & tekst, string wyraz1, string wyraz2 )
{
    // instrukcja do napisania, if (dwie linie kodu)
    return false;
}
Obecnie mocno przekombinowane.
P-144822
michalxi1410
Temat założony przez niniejszego użytkownika
» 2016-02-13 18:26:12
W koncu doszedlem co i jak dzieki!
C/C++
#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;
}
P-144824
Gibas11
» 2016-02-13 18:30:19
C/C++
bool szukaj( string & tekst, string wyraz1, string wyraz2 )
{
    if( tekst.find( wyraz1 ) != string::npos and tekst.find( wyraz2 ) != string::npos )
         return true;
   
    return false;
}
P-144825
carlosmay
» 2016-02-13 18:33:07
C/C++
size_t wyszukana_pozycja = tekst.find( wyraz1 );
if( wyszukana_pozycja != string::npos )
{
    size_t wyszukana_pozycja = tekst.find( wyraz2 ); // czy wiesz, ze deklaracja tej zmiennej wewnatrz if'a zakrywa zewnetrzna?
    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).
P-144826
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
P-144827
« 1 »
  Strona 1 z 1