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 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...
随机推荐
- spring容器IOC创建对象<三>
问题?Spring的DI讲解.DI有几种注入方式.一.spring的DI:依赖注入给属性赋值DI定义:一个对象类的属性可以使用springDI(依赖注入)来进行赋值,但是并不是所有的类属性都适合spr ...
- zabbix-agent passive
http://www.cnblogs.com/mysql-dba/p/5010902.html http://blog.chinaunix.net/uid-29155617-id-4668602.ht ...
- Dom方式解析XML
public class TestXML { public static void main(String[] args) throws SAXException, IOException { //D ...
- 用angularJS实现Bootstrap的“手风琴”
主页面代码(发现Bootstrap官网上手风琴的实例样式有问题,在这里依然使用3.0.~版本) <!DOCTYPE html> <html ng-app="ct" ...
- uzqp文件的加解密
帮朋友做的,根据python版本翻译成的java版本,记录一下代码 import java.io.File; import java.io.FileInputStream; import java.i ...
- response.setCharacterEncoding方法未定义
代码一搬家,就报这错.之前几次稀里糊涂搞好忘记总结. 问题原因: 项目中用到Tomcat和weblogic.jar包,先引入weblogic.jar包时,HttpServletResponse下的se ...
- magento url rewrite using config.xml
magento url rewrite using config.xml 2012-08-03 14:34:22| 分类: magento|举报|字号 订阅 郁闷了两天啊 http://12 ...
- C++中string转化为常用数值类型
//模板类 用于将string类型转化为 常用数值类型 template <class Type> Type stringToNum(const string& str) { is ...
- linux关机
init 0; init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等.shutdown 就是使用这种机制.init定义了8个运行级别(runle ...
- Intervals---poj1201(差分约束系统)
题目链接:http://poj.org/problem?id=1201 题目说[ai, bi]区间内和点集Z至少有ci个共同元素,那也就是说如果我用Si表示区间[0,i]区间内至少有多少个元素的话,那 ...