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

wyszukiwanie frazy w tekście

Ostatnio zmodyfikowano 2017-05-15 18:36
Autor Wiadomość
kirito1996
Temat założony przez niniejszego użytkownika
wyszukiwanie frazy w tekście
» 2017-05-14 10:38:40
witam mam taki problem
link do zadania: http://cpp0x.pl/kursy/Kurs-C++/Poziom-3/Wyszukiwanie-frazy-w-tekscie/352

mój kod:
C/C++
#include <iostream>
#include <string>
using namespace std;

bool szukaj( string & tekst, string wyraz1, string wyraz2 )
{
    size_t znalezionaPozycja = tekst.find( wyraz1 );
    size_t znalezionaPozycjaa = tekst.find( wyraz2 );
    if( znalezionaPozycja && znalezionaPozycjaa == string::npos )
         return false;
    else
         return true;
   
}

void wypiszWynik( bool czyZnaleziono )
{
    if( czyZnaleziono )
         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!";
    wypiszWynik( szukaj( napis, "ada", "kurs" ) );
    wypiszWynik( szukaj( napis, "ada", "taki" ) );
    wypiszWynik( szukaj( napis, "C++", "cpp0x" ) );
    wypiszWynik( szukaj( napis, "c#", "cpp0x" ) );
   
    return 0;
}

wszystko działą tylko jest problem z przed ostatnim pokazuje znaleziono
P-161081
karambaHZP
» 2017-05-14 10:57:41
Dla drugiej znalezionej wartości sprawdzasz czy w ogóle coś znaleziono
znalezionaPozycjaa == string::npos
,
a dla pierwszej nie
znalezionaPozycja
.
Poza tym warto sprawdzać czy jedna z tych wartości jest
std::string::npos
.
Wystarczy zmienić warunek instrukcji
if
 w funkcji
szukaj
.

Kolejna sprawa: nazwy identyfikatorów. Są do siebie łudząco podobne i łatwo o pomyłkę.
P-161082
kirito1996
Temat założony przez niniejszego użytkownika
» 2017-05-14 11:30:30
ciężka sprawa kombinuje i nic xd dacie gotowy warunek ?
P-161083
karambaHZP
» 2017-05-14 11:46:00
» Kurs C++ » Poziom 1Operacje logiczne lekcja
Zadanie jest dla chętnych do rozwiązywania problemów.
@kirito1996 co ci po gotowym kodzie?
P-161084
kirito1996
Temat założony przez niniejszego użytkownika
» 2017-05-14 11:50:35
ja juz to kiedys zrobilem i chce przeanalizować i przypomniec xD będe kombinowa dalej
próbuje i próbuje i nic
C/C++
#include <iostream>
#include <string>
using namespace std;

bool szukaj( string & tekst, string wyraz1, string wyraz2 )
{
    size_t znalezionaPozycja = tekst.find( wyraz1 );
    size_t znalezionaPozycjaa = tekst.find( wyraz2 );
    if( znalezionaPozycja == string::npos && znalezionaPozycjaa == string::npos )
    {
        cout << "przeszlo" << endl;
        return false;
    }
    else
         return true;
   
}

void wypiszWynik( bool czyZnaleziono )
{
    if( czyZnaleziono )
         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!";
    wypiszWynik( szukaj( napis, "ada", "kurs" ) );
    wypiszWynik( szukaj( napis, "ada", "taki" ) );
    wypiszWynik( szukaj( napis, "C++", "cpp0x" ) );
    wypiszWynik( szukaj( napis, "c#", "cpp0x" ) );
   
    return 0;
}
nie czaje xD zróbcie mi ten warunek hehe
P-161085
karambaHZP
» 2017-05-14 16:34:28
Nie rozumiesz operatorów logicznych. Używasz operatora, który zwraca true gdy oba wyrażenia są prawdziwe, a jak pisałem wyżej powinien być prawdziwy, gdy chociaż jedno z nich będzie prawdziwy.
P-161090
kirito1996
Temat założony przez niniejszego użytkownika
» 2017-05-15 18:31:59
dobra jednak robiłem wszystko dobrze tylko literowka była i dlatego "nie działało" dostając gotowca szybciej bym do tego doszedł xD

i rozumiem to i wiedziałem że chodzi o
||
 tylko i tam probowalem wszystkiego i ostatni kod jest z tymi
&&
P-161157
karambaHZP
» 2017-05-15 18:33:25
Ale nie w tym rzecz, aby gotowcem się ratować.
Używaj debuggera i szukaj różnic w miejscach, w których spodziewasz się innych wyników.
P-161158
« 1 » 2
  Strona 1 z 2 Następna strona