Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <sstream>
- #include <stack>
- using namespace std;
- int main()
- {
- std::ios_base::sync_with_stdio(false); //io optimization
- std::cin.tie(nullptr); //io optimization
- string input, line, word, newString, comand, Nstr;
- int BeginPos, EndPos, PastPos;
- stack<string> setWord;
- //vhod
- getline(cin, input);
- while (getline(cin, comand))
- {
- istringstream line(comand);
- line >> word;
- //comand Copy
- if (word == "copy")
- {
- line >> BeginPos;
- line >> EndPos;
- while ((BeginPos > 0) && isalpha(input[BeginPos]))
- {
- BeginPos--;
- }
- if (input[BeginPos] == ' ') BeginPos ++;
- while ((EndPos <input.size()-1) && isalpha(input[EndPos]))
- {
- EndPos++;
- }
- if (EndPos >= input.size() - 1) EndPos = input.size();
- newString = input.substr(BeginPos,( (EndPos )- BeginPos) );
- setWord.emplace(newString);
- }
- else if (word == "paste")
- {
- line >> PastPos;
- if (!setWord.empty())
- {
- Nstr = setWord.top();
- setWord.pop();
- }
- else break;
- if (input[PastPos] == ' ')
- input.insert(PastPos,' '+Nstr);
- else
- input.insert(PastPos, Nstr);
- }
- else if (word == "end")
- {
- cout << input;
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement