http://118.190.20.162/view.page?gpid=T8
#include<map>
#include<iostream>
#include<string>
#include<string.h>
using namespace std;
map <char,bool> arg;
map <char,string> com;
int main(){
char input[300];
cin.getline(input,100);
for(int i=0;input[i]!='\0';i++){
if(input[i]==':'){
arg[input[i-1]]=true;
}
else
arg[input[i]]=false;
}
int n;cin>>n;
char t;
cin.get(t);
char ctemp;
for(int i=0;i<n;i++){
cin.getline(input,300);
com.clear();
char* cmd=strtok(input," ");
while(cmd){
cmd=strtok(NULL," ");
if(!cmd)
break;
if(arg.find(cmd[1])==arg.end())//没有找到指令
{
break;
}
if(cmd[2]!='\0')//并非一个字符
break;
if(cmd[0]!='-')
break;
if(arg[cmd[1]]==true)//有参数
{
ctemp=cmd[1];
cmd=strtok(NULL," ");
com[ctemp]=cmd;
}
else if(arg[cmd[1]]==false){
com[cmd[1]]="";
}
else break;
cout<<"Case "<<i+1<<":";
map <char,string> :: iterator it;
for(it=com.begin();it!=com.end();it++){
cout<<" -"<< it->first;
if(it->second!="")
cout<<" "<<it->second;
}
cout<<endl;
}
return 0;
}