Witam, mam pewien problem, napisałem program który zamienia mi trójznaki na pojedyncze znaki, lecz nie działa to tak jak chce i nie umiem wybrnąć z tego, potrzebuję kogoś kto mnie natchnie co mam dalej zrobić
. Program działa dobrze lecz zamienia tylko jeden ze znalezionych znakow i go wypisuje, a ja chciałbym żeby znalazł najpierw wszystkie występujące znaki do zamienienia potem je zamienił i na końcu wyświetlił tylko raz przerobiony już napis.
Program:
string ZamienZnak(string wyraz, const string& search, const string& replace)
{
size_t pozycja = 0;
while ((pozycja = wyraz.find(search, pozycja)) != string::npos)
{
wyraz.replace(pozycja, search.length(), replace);
pozycja += replace.length();
}
return wyraz;
}
int main()
{
string napis;
getline (cin,napis);
cout << ZamienZnak(napis, "??=", "#");
ZamienZnak(napis, "??/", "\ ");
ZamienZnak(napis, "??'", "^");
ZamienZnak(napis, "??(", "[");
ZamienZnak(napis, "??)", "]");
ZamienZnak(napis, "??!", "|");
ZamienZnak(napis, "??<", "{");
ZamienZnak(napis, "??>", "}");
ZamienZnak(napis, "??-", "-");
cout << napis;
return 0;
}