CCF-命令行选项(模拟)
4
ls -a -l -a documents -b
ls
ls -w 10 -x -w 15
ls -a -b -c -d -e -l
Case 2:
Case 3: -w 15 -x
Case 4: -a -b
1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<algorithm>
5 #include<map>
6 using namespace std;
7 char s[300];
8 map<char,int> o,a;
9 map<char,string> m;
10 int main()
11 {
12 cin>>s;
13 int i,j,n;
14 for(i=0;s[i]!='\0';++i)
15 if(s[i]==':')
16 o[s[i-1]]++;
17 else
18 o[s[i]]++;
19 cin>>n;
20 getchar();
21 for(i=1;i<=n;++i)
22 {
23 a.clear();
24 m.clear();
25 gets(s);
26 printf("Case %d:",i);
27 for(j=1;s[j]!=' '&&s[j]!='\0';++j);
28 if(s[j]=='\0') {puts("");continue;}//字符处理完毕
29 while(s[j]!='\0')//开始处理字符
30 {
31 if(s[++j]!='-') break;//命令错误退出
32 if(o[s[++j]]==0) break;//无该命令
33 if(o[s[j]]==1) //指令
34 {
35 if(s[j+1]==' '||s[j+1]=='\0')
36 a[s[j++]]=1;
37 else break;//命令错误退出
38 }
39 else if(s[j+1]==' '&&s[j+2]!='/0')//记录参数
40 {
41 a[s[j]]=2;
42 string tmp="";
43 int tm=j;
44 for(j=j+2;s[j]!='\0'&&s[j]!=' ';++j) tmp+=s[j];
45 m[s[tm]]=tmp;
46 }
47 else break;
48 }
49 map<char,int>::iterator it; //迭代器
50 for(it=a.begin();it!=a.end();++it)
51 {
52 cout<<" -"<<it->first;
53 if(it->second==2) cout<<' '<<m[it->first];
54 }
55 puts("");
56 }
57 return 0;
58 }
CCF-命令行选项(模拟)的更多相关文章
- 命令行选项解析函数(C语言):getopt()和getopt_long()
命令行选项解析函数(C语言):getopt()和getopt_long() 上午在看源码项目webbench时,刚开始就被一个似乎挺陌生函数getopt_long()给卡住了,说实话这函数没怎么见过, ...
- NUnit-Console 命令行选项详解
本文为 Dennis Gao 原创或翻译技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. NUnit-Console 命令行选项 NUnit-Console 命令行选项列表 指定运行哪 ...
- python argparse模块解析命令行选项简单使用
argparse模块的解析命令行选项简单使用 util.py #!/usr/bin/env python # coding=utf-8 import argparse parser = argpars ...
- argparse - 命令行选项与参数解析(转)
argparse - 命令行选项与参数解析(译)Mar 30, 2013 原文:argparse – Command line option and argument parsing 译者:young ...
- 命令行选项 - Mozilla 产品与私有技术 | MDN - Google Chrome
命令行选项 在本文章中 语法规则 使用命令行选项 示例 用户配置档 -CreateProfile profile_name -CreateProfile "profile_name prof ...
- LoadRunner 11安装Micosoft Visual C++ 2005 SP1时提示命令行选项语法错误
如果安装LoadRunner 11时弹窗提示"Micosoft Visual C++ 2005 SP1 可再发行组件包(X86):'命令行选项语法错误.键入命令 / ? 可获得帮助信息'&q ...
- pytest 常用命令行选项(二)
本文接上篇继续简介pytest常用的命令行选项. 8.-v(--verbose) 选项 使用-v/--verbose选项,输出的信息会更详细.最明显的区别就是每个文件中的每个测试用例都占一行,测试的名 ...
- pytest 常用命令行选项(一)
pytest有丰富的命令行选项,以满足不同的需要,下面对常用的命令行选项作下简单介绍. 上文已经使用过-v选项,还有很多选项,你可以使用pytest --help查看全部选项.如下图: 1.--co ...
- 安装loadrunner时出现”命令行选项语法错误键入命令 \?获得帮助“的解决方法
安装LR11 时,安装Microsoft Visual c++2005 sp1运行时组件,就会提示命令行选项语法错误,键入“命令/?”可获取帮肋信息1.进入loadrunner-11\Addition ...
- 详解Top命令 输出命令行选项及代码
Linux中的top命令显示系统上正在运行的进程.它是系统管理员最重要的工具之一.被广泛用于监视服务器的负载.在本篇中,我们会探索top命令的细节.top命令是一个交互命令.在运行top的时候还可以运 ...
随机推荐
- C#中存储过程和DataTable的应用
存储过程p_OperatorDetails,有四个参数@sDatetime,@eDatetime,@operatorNo,@transdesc.其中@operatorNo和@transdesc为两个可 ...
- ElasticSearch教程——分片、扩容以及容错机制(转学习使用)
一.Primary shard和replica shard机制 1.index包含多个shard; 2.每个shard都是一个最小的工作单元,承载部分的数据,Lucene实例,完整的简历索引和处理请求 ...
- [论文阅读笔记] node2vec Scalable Feature Learning for Networks
[论文阅读笔记] node2vec:Scalable Feature Learning for Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 由于DeepWal ...
- docker基本入门知识-小白向
基本概念 Docker是一个开源项目,前身是dotCloud公司的内部项目,但苦于无法扩大使用和推广,后期开源后吸引大量的开发人员的参与,以至于公司直接改名为Docker Inc. Docker项目的 ...
- 消息队列 ---常用的 MQ 中间件
目前市面上比较常用的 MQ(Message Queue,消息队列)中间件有 RabbitMQ.Kafka.RocketMQ,如果是轻量级的消息队列可以使用 Redis 提供的消息队列,其中 Redis ...
- 3.k8s存储之ConfigMap、Secret
1.ConfigMap ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件.命令行参数或环境变量中读取配置信息.ConfigMap API 给我们提供了向容器 ...
- #2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇
目录: 前言 HarmonyOS 简介 DevEco Device Tool(windows下) 获取源码(切换到ubuntu) 烧录程序(切换回windows) 前言上一篇,我们在 Win10 上用 ...
- Windows 2008 Server R2双网卡负载均衡
源文档 <http://blog.sina.com.cn/s/blog_6025f5690101apwd.html>
- 一个上传图片,预览图片的小demo
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【EXP/IMP】问题总结
为了使测试与生产数据保持一致,只需要导出数据的时候,可以将测试库的表truncate,保留其它如索引,trigger,constraints,grants等不用再重新导. exp时候rows=y,其它 ...