// https://odorpeter.hu

// Szövegkezelés 2. rész

#include <iostream>
#include <string>
#include <windows.h>    // SetConsoleCP SetConsolOutputCP
#include <algorithm>    // reverse
#include <cstdlib>      // atoi

using namespace std;

int main()
{
    setlocale(LC_ALL, "hun");
    SetConsoleCP(1250);
    SetConsoleOutputCP(1250);
    string hatar="";
    for(int i=0;i<59;i++) hatar+="-";
    cout << hatar << endl;
    cout << "         1         2         3         4         5         " << endl;
    cout << "12345678901234567890123456789012345678901234567890123456789" << endl;
    cout << hatar << endl;
    string s = "Most az egér a sztár, mert az egér nagyon kedves és aranyos, az egér az egér!";
    cout << s << endl;
    int hossz=s.length();   // s.size()

    // szövegrészlet cseréje
    string keres, csere;
    cout << "\nMit cseréljek? ";
    cin >> keres;
    cout << "Mire cseréljem? ";
    cin >> csere;

    cout << hatar << endl;

    cout << "\nKeresett szövegrész: " << keres << endl;
    int poz=s.find(keres);
    if(poz>-1)
    {
        cout << "Első találat a(z) " << (poz+1) << ". karaktertől" << endl;
    }
    else
    {
        cout << "Ilyen részlet nincs a szövegben" << endl;
    }

    string s2 = s;
    string s3=s;

    poz=s2.find(keres);
    int abszolut_poz=poz;
    int talalat=0;
    while(poz>-1)
    {
        talalat++;
        s3=s3.replace(abszolut_poz,keres.length(),csere);
        s2=s2.substr(poz+keres.length(),s2.length());

        poz=s2.find(keres);
        abszolut_poz+=poz+csere.length();

    }

    cout << "A keresett részlet " << talalat << " helyen szerepel a szövegben" << endl;

    cout << hatar << endl;
    cout << "\nSzövegrészlet cseréje" << endl;
    cout << "Cseréljük a(z) " << keres << " részletet a(z) " << csere << " szóra!" << endl;

    cout << "Az új szöveg: \n" << s3 << endl;
    return 0;
}
