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

Rozdział 27 - różnica w zapisie

Ostatnio zmodyfikowano 2016-07-16 21:03
Autor Wiadomość
neferx
Temat założony przez niniejszego użytkownika
Rozdział 27 - różnica w zapisie
» 2016-07-16 18:53:48
Cześć. Mam do was kolejne pytanie, a mianowicie czy będzie różnica w działaniu programu przy zastosowanie dwóch sposobów zapisu:
C/C++
#include <string>
#include <iostream>

using namespace std;

void szukajZnaku( string & tekst, string fraza )
{
    size_t pozycja = tekst.find( fraza );
    if( pozycja == string::npos )
         cout << "Nie znaleziono frazy w tekscie" << endl;
    else
    {
        do
        {
           
            cout << "Fraze odnaleziono na pozycji nr: " << pozycja << endl;
            pozycja = tekst.find( fraza, pozycja + 1 );
        } while( pozycja != string::npos );
       
    }
   
}

int main()
{
    string naszTekst = "Przyklad z kursu C++ (http://cpp0x.pl) - najlepszy kurs C++ w Internecie!";
    szukajZnaku( naszTekst, "C++" );
    return 0;
}

oraz

C/C++
#include <string>
#include <iostream>

using namespace std;

void szukajZnaku( string & tekst, string fraza )
{
    size_t pozycja = tekst.find( fraza );
    if( pozycja == std::string::npos )
    {
        std::cout << "Nie znaleziono frazy w tekscie" << std::endl;
        return;
    }
   
    do
    {
        std::cout << "Fraza zostala odnaleziona na pozycji nr: " << pozycja << std::endl;
        pozycja = tekst.find( fraza, pozycja + fraza.size() );
    } while( pozycja != std::string::npos );
   
}

int main()
{
    string naszTekst = "Przyklad z kursu C++ (http://cpp0x.pl) - najlepszy kurs C++ w Internecie!";
    szukajZnaku( naszTekst, "C++" );
    return 0;
}
P-150034
aksen
» 2016-07-16 20:01:40
sam przetestuj, przecież program jest prosty
nikt nie będzie siedział i analizował każdego znaczku


główna różnica jest w tych 2 liniach:

C/C++
pozycja = tekst.find( fraza, pozycja + 1 );
pozycja = tekst.find( fraza, pozycja + fraza.size() );
   
P-150036
neferx
Temat założony przez niniejszego użytkownika
» 2016-07-16 20:58:10
Przetestowałem i z tego co widzę, to działa poprawnie, ale widocznie musiał być jakiś sens w zmianie sposobu zapisu, skoro autor kursu go zmienił przy przejściu z wyszukiwania pojedynczych znaków do wyszukiwania fraz.

@carlosmay Dzięki za odpowiedź. Zamykam.
P-150040
carlosmay
» 2016-07-16 21:03:02
widocznie musiał być jakiś sens w zmianie sposobu zapisu
Drugi przykład jest zoptymalizowany dla szukania fraz.
Rozpoczyna szukanie kolejnego wystąpienia frazy od pierwszego znaku za wcześniej znalezioną frazą,
bo szukanie po znakach poprzednio znalezionej nie ma sensu (mniej porównań wykonuje metoda).
P-150041
« 1 »
  Strona 1 z 1