#include<bits/stdc++.h>
using namespace std;
map<char,string,less<char> > mp;
int arr[30][2]; //flag
int main()
{
freopen("13.txt","r",stdin);
string line;
string str1="";//不带参数
string str2="";//带参数
string str;
int i,j,k,n;
int tag;
int p1=0;
int p2=0;
getline(cin,line);
int cnt=0;
for(i=0;i<line.length();i++)
{
if(i<line.length()-1&&line[i+1]==':')
{
str2+=line[i];
i++;
}
else if(line[i]!=':')
str1+=line[i];
}
//cout<<str1<<endl<<str2;
cin>>n;
getchar();
for(i=0;i<n;i++)
{
cout<<"Case "<<i+1<<":";
getline(cin,line);
p1=line.find(' ');
// tag=0;//0代表前面不带参数
int flag=0;//flag=1 代表有错误退出
if(p1==-1)
{
cout<<endl;
}
else
{
while((p2=line.find(' ',p1+1))!=-1)
{
str=line.substr(p1+1,p2-p1-1);
if(str[0]=='-'&&str.length()==2)//符合命令格式
{
if(str1.find(str[1])!=-1)//无参数
{
mp[str[1]]="";
}
else if(str2.find(str[1])!=-1)//有参数
{
p1=p2;
p2=line.find(' ',p1+1);//错了
if(p2==-1)
{
flag=1;
p2=line.length();
}
string temp=line.substr(p1+1,p2-p1-1);
mp[str[1]]=temp;
}
else
{
flag=1;
break;
}
}
else
{
flag=1;
break;
}
p1=p2;
}
if(flag==0)
{
p2=line.length();
str=line.substr(p1+1,p2-p1-1);
if(str[0]=='-'&&str.length()==2)//符合命令格式
{
if(str1.find(str[1])!=-1)//无参数
{
mp[str[2]]="";
}
}
}
map<char, string>::iterator it=mp.begin();
while(it!=mp.end())
{
cout<<" "<<"-"<<it->first;
if(it->second!="")
cout<<" "<<it->second;
it++;
}
cout<<endl;
mp.clear();
}
}
}
201403-3命令行选项
最新推荐文章于 2019-08-20 16:51:49 发布