ccf 命令行选项 java,CCF CSP认证201403-3 命令行选项

这篇博客详细解析了一段C++代码,用于处理2014年CSP竞赛中命令行选项。作者展示了如何使用my_split函数拆分命令行字符串,并通过anylize函数解析选项。关键部分涉及字符串操作、map数据结构以及比赛规则的理解。
摘要由CSDN通过智能技术生成

201403-3 命令行选项

题目

12e79dd4bd9b73c16483820a6c7a9ef3.png

思路

0分代码,路过的大佬求指正orz。

代码

#include

#include

#include

#include

#include

using namespace std;

int pra[30]={0};

void my_split(string cmd,vector &str){

int s=3;

while(s

int t=cmd.find(" ",s);

if(t==string::npos) t=cmd.size();

string temp=cmd.substr(s,t-s);

str.push_back(temp);

s=t+1;

}

}

map anylize(vector str){

map ans;

for(int i=0;i

string choice=str[i];

if(choice[0]!='-'||choice.size()!=2) return ans;

int t=choice[1]-'a';

switch(pra[t]){

case 0: return ans;

case 1: ans[choice]="NONE";break;

default : if(i+1

}

}

return ans;

}

int main(){

string pras;

cin>>pras;

for(int i=0;i

if(pras[i]==':') pra[pras[i-1]-'a']=2;

else pra[pras[i]-'a']=1;

}

int n;

cin>>n;

getchar();

for(int i=1;i<=n;i++){

string cmd;

getline(cin,cmd);

vector str;

my_split(cmd,str);

map ans=anylize(str);

cout<

//if(ans.size()==0) {cout<

for(map::iterator it=ans.begin();it!=ans.end();it++){

cout<first;

if(it->second!="NONE") cout<second;

}

cout<

}

return 0;

}

标签:201403,include,cout,int,cmd,str,ans,CCF,CSP

来源: https://blog.csdn.net/weixin_43944910/article/details/99763164

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值