CCF-CSP 201403-3 命令行选项
文章目录
题目描述
思路
首先,用一个map<char,bool>
来保存选项是否带参数。
然后,需要一行一行地读入数据。这在仅使用cin
的情况下是做不到的。因此,采用getline
方法读取一行并将其包装成stringstresm
,于是在一行内也可以做到与cin
相似的用法。
值得注意的是。cin读取数据后指向的是数据后的空字符(如\n
)。故在转为getline前先要读取这个\n
以排除干扰。比如使用cin.get()
或cin.ignore()
。这样就能优美地处理以行为单位读取不确定数量数据的情况。
还有一个细节。就是map的insert方法如果先后插入了两个key值相同,value不同的键值对。后者不会覆盖前者。因此在插入之前都要先做一个检查,检查是否已经含有这个key。
代码
#include <bits/stdc++.h>
using namespace std;
int main() {
string line; cin >> line;
map <char,bool> dct;
int i;
for (i = 0; i < line.size(); i++) {
if (line[i] !&#