#include <bits/stdc++.h>
using namespace std;
int main()
{
string b,s;
map<char,int> a;
getline(cin,b);
int i=0,n;
for(i=0;i<b.size();i++)
{
if(b[i+1]’:’)
{
a[b[i]]=1;//有参数
i++;
}
else
{
a[b[i]]=2;//无参数的选项
}
}
cin>>n;
getchar();
for(i=0;i<n;i++)
{
map<string,string> c;
getline(cin,s);
stringstream ss(s);
ss>>s;
string t;
while(ss>>s)
{
if(s[0]’-’&&a.count(s[1])==1&&a[s[1]]==2)//no factor
{
c[s]=" ";
}
else if(s[0]=='-'&&a.count(s[1])==1&&a[s[1]]==1)//have factor
{
ss>>t;
c[s]=" "+t+" ";
}
else
break;
}
map<string,string>::iterator iter;
cout<<"Case "<<i+1<<": ";
for(iter=c.begin();iter!=c.end();iter++)
cout<<iter->first<<iter->second;
cout<<endl;
}
return 0;
}
参考CCF认证201403-3命令行选项 - 日沉云起的博客 - 优快云博客
https://blog.youkuaiyun.com/richenyunqi/article/details/87883659