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 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...
随机推荐
- Nginx的配置中与流量分发相关的配置规范:
1.除首页外,其他页面都在某个目录中首页可以直接在根目录下,其他页面都要在根目录下的目录中.不同的location尽量使用第一个dir的模式进行区分,便于区分该流量是落在nginx本地,还是转发到后端 ...
- HBase的完全分布式的搭建与部署,以及多master
一:前提准备 1.设置时间同步 2.清空logs,datas 3.格式化集群 bin/hdfs namenode -format 4.重启集群 sbin/start-dfs.sh sbin/start ...
- Fedora 11中用MinGW编译Windows的Qt4程序(在Linux系统下编译Windows的程序)
Ubuntu下可以直接安装: sudo apt-get install mingw32 mingw32-binutils mingw32-runtime 安装后编译程序可以: i586-mingw32 ...
- Asp.net Session保存到Redis: 使用 RedisSessionStateProvider
Install-Package Microsoft.Web.RedisSessionStateProvider 依赖于: Dependencies StackExchange.Redis.Strong ...
- 算法训练 Hanoi问题
算法训练 Hanoi问题 时间限制:1.0s 内存限制:512.0MB 问题描述 如果将课本上的Hanoi塔问题稍做修改:仍然是给定N只盘子,3根柱子,但是允许每次最多移动相邻的 ...
- 安装PHPStudy2014,打开端口出现80端口 PID4 进程:System-windows服务器应用
原文:安装PHPStudy2014,打开端口出现80端口 PID4 进程:System-windows服务器应用-黑吧安全网 安装PHPStudy2014,打开端口出现80端口 PID4 进程:Sys ...
- SQL语句创建表和数据库
删除数据库,SQL Server将数据库的清单存放在master系统数据库的sysdatabases表中,只需要查看该表是否存在于该数据库中就可以了,语句如下: use master -- 设置当 ...
- MVC中”从客户端检测到有潜在危险的Request.Form值“的解决方法
从客户端检测到有潜在危险的Request.Form值: 在webForm中,可以在aspx页面顶部 <%@ Page Language="C#" AutoEventWireu ...
- LED的压降
看具体什么LED一下是参考1.直插LED压降红:2.0-2.2V黄:1.8-2.0V绿:3.0-3.2V 额定电流约20mA. 2.贴片LED压降红:1.82-1.88V,电流5-8mA绿:1.75- ...
- JQuery: JQuery效果(隐藏、显示、切换,滑动,淡入淡出,以及动画)
JQuery:效果 JQuery效果有很多,包括隐藏.显示.切换,滑动,淡入淡出,以及动画等.隐藏:JQuery hide() 显示:JQuery show() 切换:JQuery toggle() ...