CCF真题之命令行选项
201403-3
#include<iostream>
#include<string>
#include<map> //map会自动排序
using namespace std;
int main(){
int N,i,first,second,index,flag;
string letters,cmds,tmp,parameter;
map<string,string> m;
cin>>letters>>N;
getline(cin,cmds);
for(i = 0; i < N; i++){
getline(cin,cmds);
first = cmds.find(" ");
while(first > 0){
cmds = cmds.substr(first+1,cmds.length()-first-1);
second = cmds.find(" ");
if(second < 0)
{
flag=1;
second = cmds.length();
}// break;
tmp = cmds.substr(0,second);
if(tmp.length() == 2 && tmp[0] == '-'){
index = letters.find(tmp[1]);
if(index >= 0){
if(index+1 < letters.length() &&letters[index+1] == ':'){ //带参数
if(flag==1) break;//若带参数,输入ls -w,则报错,若无参,输入ls -a,则正确参数
else
{
cmds = cmds.substr(second+1,cmds.length()-second-1);
second = cmds.find(" ");
if(second < 0) second = cmds.length();
parameter = cmds.substr(0,second);
if(m.count(tmp))//使用count检查map对象中某键是否存在
m.erase(tmp); //存在,则删除 //处理不重复输出
m.insert(pair<string,string>(tmp,parameter));
}
//continue;
}
else
{
if(m.count(tmp))//使用count检查map对象中某键是否存在
m.erase(tmp); //存在,则删除
m.insert(pair<string,string>(tmp,"")); //处理不重复输出
}
first = cmds.find(" ");
}
else break; //无这个参数
}
else break; //参数错误
//first = cmds.find(" ");
}
cout<<"Case "<<i+1<<":";
map<string,string>::iterator it = m.begin(); //map默认是排好序的
while(it != m.end()){
cout<<" "<<it->first;
if(it->second !="")
cout<<" "<<it->second;
++it;
}
cout<<endl;
m.clear();
}
return 0;
}
CCF真题之命令行选项的更多相关文章
- Maven学习(四)Maven 命令行选项
说明: 1.使用-选项时,和后面的参数之间可以不要空格.而使用--选项时,和后面的参数之 间必须有空格.如下面的例子: $ mvn help:describe -Dcmd=compiler:co ...
- 学习笔记——Maven 命令行选项
2014-10-09:更新裁剪反应堆具体用法 说明: 1.使用-选项时,和后面的参数之间可以不要空格.而使用--选项时,和后面的参数之 间必须有空格.如下面的例子: $ mvn help:des ...
- Microsoft Windows Installer 工具 Msiexec.exe 的命令行选项
摘自:http://support.microsoft.com/kb/314881/zh-cn 概要 本文列出了 Windows Installer 工具 Msiexec.exe 的命令行选项.Msi ...
- make的命令行选项
make的命令行选项 -b -m 忽略,提供其它版本make兼容性. -B --always-make 强制重建所有规则的目标,不根据规则的依赖描述决定是否重建目标文件. -C DIR --direc ...
- PhantomJS命令行选项
支持命令行选项有: --help或-h列出所有可能的命令行选项.立即停止,不会运行一个脚本作为参数传递. --version或-v打印的版本PhantomJS.立即停止,不会运行一个脚本作为参数传递. ...
- 【Python】【自动化测试】【pytest】【常用命令行选项】
https://www.cnblogs.com/cnkemi/p/9989019.html http://www.cnblogs.com/cnkemi/p/10002788.html pytest 常 ...
- python 解析命令行选项
问题: 程序如何能够解析命令行选项 解决方案 argparse 模块可被用来解析命令行选项 argparse 模块 argparse 模块是标准库中最大的模块之一,拥有大量的配置选项 dest 参数指 ...
- Ruby 命令行选项
Ruby 命令行选项 Ruby 一般是从命令行运行,方式如下: $ ruby [ options ] [.] [ programfile ] [ arguments ... ] 解释器可以通过下列选项 ...
- CCF CSP 201403-3 命令行选项
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-3 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...
随机推荐
- 文件管理php代码操作文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- php curl多线程抓取网页
PHP 利用 Curl Functions 可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,受限于php语言本身不支持多线程,所以开发爬虫程序效率并不高,这时候往往需 要借助Cu ...
- 回退(pop&present)到根页面(根控制器)的方法,很不错~
http://blog.csdn.net/assholeu/article/details/45897035
- ADB not responding. If you'd like to retry, then please manually kill "adb.exe" and click 'Restart'
ADB not responding. If you'd like to retry, then please manually kill "adb.exe" and click ...
- busybox rx 命令
rx命令使用xmodem传送文件,只需要串口线就传送. 在文件系统输入如下命令,传送文件到板子上,板子上保存文件的名称为file rx file 在secureCRT中选择Transfer->S ...
- oracle 中的游标
oracle 中的游标 通俗易懂的sql代码直接上! --简单的游标使用滴呀 --使用FOR OBJ IN OBJS LOOP ......END LOOP; DECLARE CURSOR C_JOB ...
- http://blog.sina.com.cn/s/blog_6940cab30101hn9j.html
http://blog.sina.com.cn/s/blog_6940cab30101hn9j.html
- How to read the HTML DTD
Contents How to read the HTML DTD 1. DTD Comments 2. Parameter Entity definitions 3. Element declara ...
- 磁盘空间已满导致rabbitmq无法启动
rabbitmq-server 启动问题 今天遇到一个挺奇怪的 rabbitmq-server 的启动问题. 在内部使用的 openstack 环境上,rabbitmq-server突然就关掉了,无法 ...
- ssh secure shell client
登陆方式和putty一样