201403-3 命令行选项

简介: 201403-3 命令行选项

文章目录

  • C++
  • 总结


本题链接命令行选项

本博客给出本题截图

image.png

image.png

C++

#include <iostream>
#include <cstdio>
#include <cstring>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
const int N = 30;
bool st1[N], st2[N];
string res[N];
int main()
{
  string a;
  cin >> a;
  for (int i = 0; i < a.size(); i ++ ) 
    if (i + 1 < a.size() && a[i + 1] == ':')
    {
      st2[a[i] - 'a'] = true;   //带参
      i ++;
    }
    else st1[a[i] - 'a'] = true; //不带参
  int n;
  cin >> n;
  getchar();
  for (int i = 1; i <= n; i ++ )
  {
    printf("Case %d:", i);
    getline(cin, a);
    stringstream ssin(a);
    vector<string> s;
    while (ssin >> a) s.push_back(a);
    for (int i = 0; i < N; i ++ ) res[i].clear(); //注意每次需要清空res数组
    for (int i = 1; i < s.size(); i ++ )
    {
      if (s[i][0] != '-' || s[i][1] < 'a' || s[i].size() != 2) break;     //这里break的是不合法的读入
      int k = s[i][1] - 'a';
      if (st1[k]) res[k] = "x";    //这里可以是任何东西(只要有东西就可)
      else if (st2[k] && i + 1 < s.size())
      {
        res[k] = s[i + 1];
        i ++; 
      }
      else break;
      //这里break的是合法读入中的不符合题意(如初始字符串没有'c',但是后面读入中有'c','c'后面的读入是无效的)
    }
    for (int i = 0; i < N; i ++ ) 
      if (res[i].size()) 
      {
        cout << " -" << (char)(i + 'a');
        if (st2[i]) cout << ' ' << res[i];
      }
    cout << endl;
  }
  return 0;
}

总结

模拟题,注意细节,因为空格问题卡了三次,(麻了

目录
相关文章
|
16天前
playwright命令行中最常用的选项
playwright命令行中最常用的选项
8 1
|
3月前
vcpkg 命令行工具的选项说明
vcpkg 命令行工具的选项说明
20 0
|
6月前
|
存储
201403-3 命令行选项
201403-3 命令行选项
|
Python
如何优雅地解析命令行选项(下)
随着我们编程经验的增长,对命令行的熟悉程度日渐加深,想来很多人会渐渐地体会到使用命令行带来的高效率。 自然而然地,我们自己写的很多程序(或者干脆就是脚本),也希望能够像原生命令和其他程序一样,通过运行时输入的参数就可以设定、改变程序的行为;而不必一层层找到相应的配置文件,然后还要定位到相应内容、修改、保存、退出……
274 0
|
Python
如何优雅地解析命令行选项(上)
随着我们编程经验的增长,对命令行的熟悉程度日渐加深,想来很多人会渐渐地体会到使用命令行带来的高效率。 自然而然地,我们自己写的很多程序(或者干脆就是脚本),也希望能够像原生命令和其他程序一样,通过运行时输入的参数就可以设定、改变程序的行为;而不必一层层找到相应的配置文件,然后还要定位到相应内容、修改、保存、退出……
159 0
|
Unix Linux 安全
学会在命令行中获取帮助
 学会在命令行中获取帮助 在 Linux 环境中,如果你遇到困难,可以使用man命令,它是Manual pages的缩写。 Manual pages 是 UNIX 或类 UNIX 操作系统中在线软件文档的一种普遍的形式, 内容包括计算机程序(包括库和系统调用)、正式的标准和惯例,甚至是抽象的概念。