Kod: Zaznacz cały
#include <iostream>
#include <vector>
#include <cstdlib>
using namespace std;
int main(){
string slowo;
cout << "Podaj swoje slowo: ";
cin >> slowo;
int rozmiar_slownika, rozmiar_wejscia;
cout << "Podaj rozmiar slownika: ";
cin >> rozmiar_slownika;
cout << "Podaj rozmiar bufora wejsciowego: ";
cin >> rozmiar_wejscia;
string cala_linia;
char x;
for(int i=0; i<rozmiar_slownika; i++) cala_linia += slowo[0];
cala_linia += slowo;
cala_linia += "~";
string wyjscie = "";
wyjscie += slowo[0];
do{
string prefix = cala_linia.substr(rozmiar_slownika, rozmiar_wejscia-1);
string slownik = cala_linia.substr(0, rozmiar_slownika);
int a = -1, b = 0;
while(prefix.size() >= 0){
a = slownik.find(prefix);
b = prefix.size();
x = cala_linia[rozmiar_slownika+b];
if(a != -1) break;
prefix = prefix.substr(0, prefix.size()-1);
}
for(int i = 0; i < cala_linia.size()-1; i++)cout << "|" << cala_linia[i];
cout << endl;
if(a == -1) cout << "Wyjscie kodera: "<< "(" << 0 <<","<< 0 <<","<< x <<")" << endl;
else if(x!='~') cout << "Wyjscie kodera: "<< wyjscie << "(" << a << "," << b << "," << x <<")" << endl;
else cout << "Wyjscie kodera: "<< wyjscie << "(" << a << "," << b << ",NULL)" << endl;
b++;
int c = cala_linia.size();
cala_linia = cala_linia.substr(b, c-b);
wyjscie = "";
cout << endl;
a=-1;
b=0;
}
while(x != '~');
cout << endl;
system("PAUSE");
}