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

Jak znaleźć ile razy został znaleziony podany ciąg znaków w innym ciągu?

Ostatnio zmodyfikowano 2014-03-04 21:56
Autor Wiadomość
ppp47676
Temat założony przez niniejszego użytkownika
Jak znaleźć ile razy został znaleziony podany ciąg znaków w innym ciągu?
» 2014-03-01 11:26:25
C/C++
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std;

int main( int argc, char * argv[] )
{
    int i, j, dl;
    int ile;
    bool ciag = false;
    string tab2[ 3 ];
    cout << "Podaj dlugosc ciagu max 20: ";
    cin >> dl;
    cout << "\n";
    if( dl <= 20 ) {
        string tab1[ dl ];
        cout << "\n";
        cout << "Wprowadz ciag: " << endl;
        for( i = 0; i < dl; i++ ) {
            cin >> tab1[ i ];
        }
        cout << endl;
        cout << "Wprowadz ciag 3-znakowy do przeszukania: " << endl;
        for( j = 0; j < 3; j++ ) {
            cin >> tab2[ j ];
        }
        system( "cls" );
        cout << "Ciag znakow: ";
        for( i = 0; i < dl; i++ ) {
            cout << tab1[ i ];
        }
        cout << endl;
        cout << "\n";
        cout << "Ciag do przeszukania: ";
        for( j = 0; j < 3; j++ ) {
            cout << tab2[ j ];
        }
        for( i = 0; i < dl; i++ ) {
            for( j = 0; j < 3; j++ ) {
                if( tab2[ j ] == tab1[ i ] ) {
                    j++;
                    i++;
                    if( tab2[ j ] == tab1[ i ] ) {
                        j++;
                        i++;
                        if( tab2[ j ] == tab1[ i ] ) {
                            ciag = true;
                        } else {
                            ciag = false;
                        }
                    } } } }
        cout << endl;
        cout << "\n";
        if( ciag == true ) {
            cout << "Znaleziono!" << endl; //<---tu ma pisać ile razy//
        } else {
            cout << "Nie znaleziono" << endl;
        }
    } else {
        cout << "Mozesz urzyc max 20 znakow!" << endl;
    }
    cout << "\n";
    system( "PAUSE" );
    return EXIT_SUCCESS;
}
P-105438
DejaVu
» 2014-03-04 16:39:30
http://cpp0x.pl/kursy/Kurs-C++​/Poziom-3​/Wyszukiwanie-frazy-w-tekscie​/352

Wydaje mi się, że nawet tam jest przykład z rozwiązaniem Twojego problemu.
P-105631
akwes
» 2014-03-04 21:56:49
Jeżeli to zadanie z algorytmów to zainteresuj się algorytmami: Knutha-Morrisa-Pratta, Karpa-Rabina oraz Boyer-Moora. Na wikipedii łatwo o pseudokod, który łatwo przepisać na dowolny język programowania. Aczkolwiek najwięcej zrozumienia da Ci implementacja tego jedynie po opisie algorytmu.
P-105662
« 1 »
  Strona 1 z 1