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

[C++][Poziom 3] Problem z zadaniem domowym " Wyszukiwanie frazy w tekście "

Ostatnio zmodyfikowano 2013-03-28 12:01
Autor Wiadomość
00Andre
Temat założony przez niniejszego użytkownika
[C++][Poziom 3] Problem z zadaniem domowym " Wyszukiwanie frazy w tekście "
» 2013-03-28 09:00:27
Witam serdecznie znowu, mam problem którego nie umiem rozwiązać

Uzupełnij funkcję poniższego programu tak, aby zwróciła wartość true tylko wtedy gdy oba wyrazy występują w zadanym łańcuchu tekstowym:
C/C++
#include <iostream>
#include <string>

bool szukaj( std::string & tekst, std::string wyraz1, std::string wyraz2 )
{
    //TODO: implementację tej funkcji należy napisać
    return false;
}

void wypiszWynik( bool czyZnaleziono )
{
    if( czyZnaleziono )
         std::cout << "Znaleziono" << std::endl;
    else
         std::cout << "Nie znaleziono" << std::endl;
   
}

int main()
{
    std::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;
}


// Moja Funkcja

bool szukaj( string tekst, string wyraz1, string wyraz2 )
{
    size_t z = tekst.find( wyraz1 );
    size_t z1 = tekst.find( wyraz2 );
    int i = 0;
   
    if(( z, z1 ) == string::npos )
    {
        return true;
    }
    else return false;
   
   
   
}

Wynik jest taki:
Nie znaleziono
Znaleziono
Nie znaleziono
Nie znaleziono

A powinno być:
Znaleziono
Nie znaleziono
Znaleziono
Nie znaleziono

Nie wiem w czym zrobiłem problem. proszę o wytłumaczenie mi ;)
P-79513
jsc
» 2013-03-28 11:01:43
Trzeba z twoich findów wyciąć środkowe argumenty, tak aby zostało coś takiego find (napis, szukany), albo lepiej jest zrobić taki napis.find (szukany).
P-79519
00Andre
Temat założony przez niniejszego użytkownika
» 2013-03-28 11:39:06
A jak to napisać trzeba jakieś instrukcji czy pętli użyć czy co ?
P-79521
Fores
» 2013-03-28 11:53:45
Zmien ifa na takiego i dziala:

if(( z != string::npos ) &&( z1 != string::npos ) )
P-79522
00Andre
Temat założony przez niniejszego użytkownika
» 2013-03-28 12:01:48
Dziękuje bardzo za pomoc udzieloną ;) Temat można zamknąć
P-79524
« 1 »
  Strona 1 z 1