Untitled
unknown
plain_text
3 years ago
2.9 kB
3
Indexable
#include<iostream> //#include"function.h" //#ifndef FUNCTION_H #define FUNCTION_H #include <iostream> using namespace std; class String_Calculator { public: String_Calculator(){}; String_Calculator(const string); String_Calculator& Add(const string); String_Calculator& Subtract(const string); String_Calculator& Shift(const string); void output() const; private: string s = ""; }; //end class String_Calculator //#endif // FUNCTION_H string str[38]={"0","0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; long long int become(const string ss){ long long int num=0,pos=ss.size(); for(int i=0;i<pos;i++){ string st=ss.substr(i,1); if(st=="1") num=num*10+1; else if(st=="2") num=num*10+2; else if(st=="3") num=num*10+3; else if(st=="4") num=num*10+4; else if(st=="5") num=num*10+5; else if(st=="6") num=num*10+6; else if(st=="7") num=num*10+7; else if(st=="8") num=num*10+8; else if(st=="9") num=num*10+9; else if(st=="0") num=num*10; else{ num=-1; break; } } return num; } String_Calculator::String_Calculator(const string ss){ this->s=ss; } String_Calculator&String_Calculator::Add(const string ss){ this->s=this->s+ss; return *this; } String_Calculator&String_Calculator::Subtract(const string ss){ int pos=-1; pos=this->s.find(ss); if(pos>-1 && pos<this->s.size()){ this->s.erase(pos,ss.size()); }else{ this->s="error"; } return *this; } String_Calculator&String_Calculator::Shift(const string ss){ long long int a=become(ss),pos=this->s.size(); if(a==-1){ this->s="error"; return *this; } for(int i=0;i<pos;i++){ string st=this->s.substr(i,1); for(int j=1;j<=36;j++){ if(st==str[j]){ st=str[(j+a)%36]; break; } } if(i==0){ this->s=st+this->s.substr(i+1,this->s.size()-i-1); } else if(i==pos){ this->s=this->s.substr(0,i)+st; } else{ this->s=this->s.substr(0,i)+st+this->s.substr(i+1,this->s.size()-i-1); } } return *this; } void String_Calculator::output() const{ cout << this->s <<endl; return; } using namespace std; int main(){ int n; string x, y, c; cin >> n; while(n--){ cin >> x >> y >> c; String_Calculator a(x), ans; if(c == "+") ans = a.Add(y); if(c == "-") ans = a.Subtract(y); if(c == "@") ans = a.Shift(y); ans.output(); } }
Editor is loading...