要注意输出“Are you kidding me? @\/@”时,在双引号中表示‘\’要用双斜杠表示,否则会出错。
#include <iostream> #include <vector> using namespace std; vector<string> extract(string s) { vector<string> v; string ss = ""; int flag = 0; for(int i = 0; i < s.length(); i++) { if(s[i] == '[') { flag = 1; } else if(s[i] == ']') { flag = 0; v.push_back(ss); ss = ""; } else { if(flag) { ss += s[i]; } } } return v; } int main() { string shou, yan, kou; vector<string> vs, vy, vk; getline(cin, shou); vs = extract(shou); getline(cin, yan); vy = extract(yan); getline(cin, kou); vk = extract(kou); int n; cin >> n; for (int i = 0; i < n; i++) { int num[5]; cin>> num[0] >> num[1] >> num[2] >> num[3] >> num[4]; if (num[0] > vs.size() || num[0] < 1 || num[4] > vs.size() || num[4] < 1 || num[1] > vy.size()|| num[1] < 1 || num[3] > vy.size() || num[3] < 1 || num[2] > vk.size() || num[2] < 1) { cout << "Are you kidding me? @\\/@" << endl; continue; } cout << vs[num[0] - 1] + "(" + vy[num[1] - 1] + vk[num[2] - 1] + vy[num[3] - 1] + ")"+ vs[num[4] - 1] << endl; } return 0; }