借鉴网上大神们的代码写出。
1.getline可以输入带空格的字符串。
string str;
getline(cin,str);
2.vector<vector<string> > v;相当于定义了一个可变长度的二维数组v[m][n]。
3.str.substr(a,b);意为取起始地址为a, 长度为b的字符串。
4.s.push_back(i);把i插入s中。
5.v.size();取数组长度。
6.“Are you kidding me? @\\/@”中,?与@中有个空格。
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
int main()
{
vector<vector<string> > v;
string str;
int i,j;
for(i=0;i<3;++i)
{
vector<string> s;
getline(cin,str);
int k=0;
for(j=0;j<str.length();++j)
{
if(str[j]=='[')
{
while(k++<str.length())
{
if(str[k]==']')
{
s.push_back(str.substr(j+1,k-1-j));
break;
}
}
}
}
v.push_back(s);
}
int n,a,b,c,d,e;
cin >> n;
while(n--)
{
cin >> a >> b >> c >> d >> e;
if(a>v[0].size()||b>v[1].size()||c>v[2].size()||d>v[1].size()||e>v[0].size()||a<1||b<1||c<1||d<1||e<1)
{
cout << "Are you kidding me? @\\/@" << endl;
}
else
{
cout << v[0][a-1] << "(" << v[1][b-1] << v[2][c-1] << v[1][d-1] << ")" << v[0][e-1] << endl;
}
}
return 0;
}