g2g c u l8r(训练赛)
题意:输入一系列缩写,再输入句子,输出把缩写替换掉的完整句子。
题解:就是解决上面的问题。录入时采用getlin(cin,s),记得加头文件#include<string>。建立缩写和句子之间的关系用map进行记录。处理输入句子有两种方法。
accode1:
int main()
{
int n;
string a[1000],b[1000];
map<string,string>q;
map<string,int>q1;
cin>>n; getchar();
for(int i=0; i<n; i++)
{
cin>>a[i];
getchar();
getline(cin,b[i]);
q[a[i]]=b[i];//记录输入字符串
q1[a[i]]=1;//记录字符串是否有缩写
}
int t;
cin>>t;
getchar();
while(t--)
{
string s,e;
while(cin>>s)
{
char o=getchar();//判断输入完单词后是空格还是回车
if(q1[s]==0)
cout<<s<<' ';
else cout<<q[s]<<' ';
if(o=='\n')
break;
}
cout<<endl;
}
return 0;
}
accode2:
int
main()
{
int
n, m;
cin >> n;
string a, b, c;
map<string, string>p;
while
(n--)
{
cin >> a;
getchar
();
getline(cin, b);
p[a] = b;
}
cin >> m;
while
(m--)
{
while
(cin >> c)
{
char
ch =
getchar
();
if
(p.find(c) == p.end())//使用map函数进行
cout << c <<
" "
;
else
cout << p[c] <<
" "
;
if
(ch ==
'\n'
)
cout << endl;
}
}
return
0;
}