Witam mam do zrobienia program :
Mając dany napis . Dozwolone są na nim następujące operacje:
⦁ Z a b - zamień w napisie wszystkie wystąpienia literki a na literkę b,
⦁ D c - doklejenie na końcu napisu literki c,
⦁ U n - usunięcie z napisu końcowych literek,
⦁ N - zakończenie modyfikowania napisu.
Możesz założyć, że a, b, c będą małymi literkami alfabetu angielskiego. Zadaniem Twojego programu jest dla danego napisu stwierdzić jaki napis powstanie z niego po wykonaniu podanego ciągu modyfikacji. Modyfikacje wykonujemy w dokładnie takiej kolejności w jakiej zostały podane.
Zadanie
Napisz program, który:
⦁ wczyta ze standardowego wejścia napis oraz kolejne operacje wykonywane na tym napisie,
⦁ wypisze na standardowe wyjście napis powstały po wykonaniu tych operacji.
Wejście
W pierwszej linii wejścia znajduje się napis , którego długość jest niemniejsza niż i nie przekracza . W drugiej linii znajduje się ciąg operacji zakończony operacją N. Liczba operacji nie przekracza . Ponadto gwarantujemy, że po każdej operacji długość napisu będzie niemniejsza od i nie większa niż .
Wyjście
W jedynym wierszu wyjścia należy wypisać napis powstały z napisu po tym ciągu modyfikacji.
Przykład
Dla danych wejściowych:
main
Z i l U 1 D w D a N
poprawną odpowiedzią jest:
malwa
Oto mój kod :
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
int i;
char a,b,n,c,operacja;
cin >> s;
while (cin >> operacja)
{
if (operacja=='Z')
{
cin >> a >> b;
for (i=0;i<s.length(); i++)
{
if (s[i]==a)
{
s[i]=b;
}
}
}
else if (operacja=='D')
{
cin>>c;
s+=c;
}
else if (operacja=='U')
{
cin>>n;
s.erase(s.length()-n);
}
else if (operacja=='N')
{
break;
}
}
cout << s << endl;
}
Problem w tym, że podczas sprawdzania tego zadania wyskakuje mi błąd process exited due to signal 6.
Proszę o pomoc, z góry dzięki.