日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ccf命令行选项只能用c实现_CCF-201403-3-命令行选项

發布時間:2023/12/2 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ccf命令行选项只能用c实现_CCF-201403-3-命令行选项 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述

試題編號:

201403-3

試題名稱:

命令行選項

時間限制:

1.0s

內存限制:

256.0MB

問題描述:

問題描述

請你寫一個命令行分析程序,用以分析給定的命令行里包含哪些選項。每個命令行由若干個字符串組成,它們之間恰好由一個空格分隔。這些字符串中的第一個為該命令行工具的名字,由小寫字母組成,你的程序不用對它進行處理。在工具名字之后可能會包含若干選項,然后可能會包含一

些不是選項的參數。

選項有兩類:帶參數的選項和不帶參數的選項。一個合法的無參數選項的形式是一個減號后面跟單個小寫字母,如"-a" 或"-b"。而帶參數選項則由兩個由空格分隔的字符串構成,前者的格式要求與無參數選項相同,后者則是該選項的參數,是由小寫字母,數字和減號組成的非空字符串。

該命令行工具的作者提供給你一個格式字符串以指定他的命令行工具需要接受哪些選項。這個字符串由若干小寫字母和冒號組成,其中的每個小寫字母表示一個該程序接受的選項。如果該小寫字母后面緊跟了一個冒號,它就表示一個帶參數的選項,否則則為不帶參數的選項。例如, "ab:m:" 表示該程序接受三種選項,即"-a"(不帶參數),"-b"(帶參數), 以及"-m"(帶參數)。

命令行工具的作者準備了若干條命令行用以測試你的程序。對于每個命令行,你的工具應當一直向后分析。當你的工具遇到某個字符串既不是合法的選項,又不是某個合法選項的參數時,分析就停止。命令行剩余的未分析部分不構成該命令的選項,因此你的程序應當忽略它們。

輸入格式

輸入的第一行是一個格式字符串,它至少包含一個字符,且長度不超過 52。格式字符串只包含小寫字母和冒號,保證每個小寫字母至多出現一次,不會有兩個相鄰的冒號,也不會以冒號開頭。

輸入的第二行是一個正整數 N(1 ≤ N ≤ 20),表示你需要處理的命令行的個數。

接下來有 N 行,每行是一個待處理的命令行,它包括不超過 256 個字符。該命令行一定是若干個由單個空格分隔的字符串構成,每個字符串里只包含小寫字母,數字和減號。

輸出格式

輸出有 N 行。其中第 i 行以"Case i:" 開始,然后應當有恰好一個空格,然后應當按照字母升序輸出該命令行中用到的所有選項的名稱,對于帶參數的選項,在輸出它的名稱之后還要輸出它的參數。如果一個選項在命令行中出現了多次,只輸出一次。如果一個帶參數的選項在命令行中出

現了多次,只輸出最后一次出現時所帶的參數。

樣例輸入

albw:x

4

ls -a -l -a documents -b

ls

ls -w 10 -x -w 15

ls -a -b -c -d -e -l

樣例輸出

Case 1: -a -l

Case 2:

Case 3: -w 15 -x

Case 4: -a -b

解題思路:

一直模擬,按照它的規則來寫。這里就不贅述了,因為我感覺代碼里面的注釋已經很詳細了。

我沒用map,也沒有想到用map。直接模擬的,只得到了90分。有大神路過看到博客的話請指點一二,因為我也想拿滿分吶。

源代碼:

#include

#include

#include

#include

#include

using namespace std;

struct node

{

int appear;//該命令是否在格式字符串中出現

int flag;//命令是否在命令行中出現

int appear_parameter;//命令后面是否有參數

string parameter;//最終的命令是什么樣子的

};

node ans[26];

void init_ans()

{

for(int i=0;i<26;i++)

{

ans[i].appear=0;//初始化沒有在格式字符串中出現

ans[i].flag=0;//默認沒有在命令行中出現

ans[i].appear_parameter=0;//初始化都沒有命令參數

ans[i].parameter="";//初始化為一個空串

}

}

void init_pos()

{

for(int i=0;i<26;i++)

{

ans[i].flag=0;//如果在命令行中出現的話標記為1

ans[i].parameter="";//初始化為一個空串

}

}

int main()

{

int num;//判斷條數

int k=1;

string s;//格式化字符串

string ss;//需要判斷的命令行

cin>>s;

init_ans();

int len_s=s.length();

for(int i=0;i

{

if(s[i]>='a'&&s[i]<='z')

{

ans[s[i]-'a'].appear=1;//該命令出現

}

else if(s[i]==':')

{

ans[s[i-1]-'a'].appear_parameter=1;//帶有參數

}

}

scanf("%d",&num);

cin.ignore();//讀入一個換行符,不然也會算作一個命令的

while(k<=num)

{

getline(cin,ss);

init_pos();

int len_ss=ss.length();

int ss_index=len_ss-1;

while(ss[ss_index]==' ')//考慮一下后面存在多個空格的情況,雖然沒有什么用

{

ss_index--;

}

string p=ss.substr(0,ss_index+1);

ss=p;

len_ss=ss.length();

if(len_ss<=2)

{

cout<

k++;

continue;

}

ss+=" ";//在最后面加一個空格,方便處理

int l=0;//分割字符串的左邊界

int r=0;//分割字符串的右邊界

for(int i=0;i

{

if(ss[i]==' ')

{

l=i;

r=i;

r++;

while(ss[r]!=' ')

{

r++;

}

string temp_s=ss.substr(l+1,r-l-1);

//如果截取出來的字符串是一個命令(要絕對保證),不用擔心是不是參數,下面判斷到了

if(temp_s.length()==2&&temp_s[0]=='-'&&temp_s[1]>='a'&&temp_s[1]<='z')

{

if(ans[temp_s[1]-'a'].appear==0)//該命令沒有出現

{

break;

}

else//該命令在格式字符串中出現過

{

if(ans[temp_s[1]-'a'].appear_parameter==0)//正常的命令,并且沒有參數

{

ans[temp_s[1]-'a'].flag=1;

i=r-1;

}

else//正常的命令,并且有參數,那就讀取下一個是不是參數

{

int ll=r;

int rr=r;

rr++;

while(ss[rr]!=' ')

{

rr++;

}

string temp_ss=ss.substr(ll+1,rr-ll-1);//截取出來一個參數字符串

//判斷參數字符串是否符合標準

int flag_parameter=1;//默認符合標準

for(int j=0;j

{

//如果當前字符不是減號,不是小寫字母,也不是數字說明不是標準參數

if((temp_ss[j]!='-')&&(temp_ss[j]'9')&&(temp_ss[j]'z'))

{

flag_parameter=0;

}

}

if(flag_parameter==0)//不符合參數標準

{

break;

}

else//符合參數標準

{

ans[temp_s[1]-'a'].flag=1;//該命令出現

ans[temp_s[1]-'a'].parameter=temp_ss;//該命令的參數

i=rr-1;

}

}

}

}

else

{

break;//不是正常的命令

}

}

}

string res="";

for(int i=0;i<26;i++)

{

if(ans[i].flag==1)//出現該命令

{

if(ans[i].appear_parameter==0)//無參數類型

{

res+=" ";

res+="-";

res+=i+'a';

}

else//有參數類型

{

res+=" ";

res+="-";

res+=i+'a';

res+=" ";

res+=ans[i].parameter;

}

}

}

cout<

cout<

k++;

}

return 0;

}

CCF CSP 201403-3 命令行選項

CCF計算機職業資格認證考試題解系列文章為meelo原創,請務必以鏈接形式注明本文地址 CCF CSP 201403-3 命令行選項 問題描述 請你寫一個命令行分析程序,用以分析給定的命令行里包含哪些 ...

Maven學習(四)Maven 命令行選項

說明: 1.使用-選項時,和后面的參數之間可以不要空格.而使用--選項時,和后面的參數之??? 間必須有空格.如下面的例子: $ mvn help:describe -Dcmd=compiler:co ...

學習筆記——Maven 命令行選項

2014-10-09:更新裁剪反應堆具體用法 說明: 1.使用-選項時,和后面的參數之間可以不要空格.而使用--選項時,和后面的參數之??? 間必須有空格.如下面的例子: $ mvn help:des ...

Microsoft Windows Installer 工具 Msiexec&period;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真題之命令行選項

201403-3 問題描述 請你寫一個命令行分析程序,用以分析給定的命令行里包含哪些選項.每個命令行由若干個字符串組成,它們之間恰好由一個空格分隔.這些字符串中的第一個為該命令行工具的名字,由小寫字母 ...

隨機推薦

C&num;&period;NET里面抽象類和接口有什么區別&quest;

聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用于要創建一個體現某些基本行為的類,并為該類聲明方法,但不能在該類中實現該類的情況.不能創建abstract 類的實例.然 ...

python簡單實現用戶表單登錄

實現簡單的用戶表單驗證登錄 user="desperado" pwd=" s=0 for i in range(10): if s < 3: username = ...

java時間庫Joda-Time

雖然在java8里面有內置的最新的時間庫,但是在java8之前的版本所有的時間操作都得自己寫,未免有些繁瑣,如果我們不自己封裝的話可以用Joda-Time這個時間庫,下面寫下這個庫的具體用法. git ...

SQL腳本--有關壓縮數據庫日志

/*--壓縮數據庫的通用存儲過程??壓縮日志及數據庫文件大小?因為要對數據庫進行分離處理?所以存儲過程不能創建在被壓縮的數據庫中 --鄒建 2004.03(引用請保留此信息)--*/ /*--調用示例 ...

sematext

https://sematext.atlassian.net/wiki/display/PUBLOGSENE/Syslog

Expert Shell Scripting

Expert Shell Scripting 好好學習這本書

CSS與HTML5響應式圖片

隨著?Retina 屏幕的逐漸普及,網頁中對圖片的適配要求也越來越高.如何讓圖片在放大了兩倍的?Retina?屏幕顯示依然清晰,曾經一度困擾著網頁開發者,好在?CSS3 與 HTML5 已經著力在改變 ...

Hadoop集群的hbase介紹、搭建、環境、安裝

1.hbase的介紹(自行百度hbase,比我總結的全面具體) HBase – Hadoop Database,是一個高可靠性.高性能.面向列.可伸縮的分布式存儲系統,利用HBase技術可在廉價PC ...

HTTP Get與Post的本質區別

作者:Larry鏈接:https://zhuanlan.zhihu.com/p/22536382來源:知乎著作權歸作者所有.商業轉載請聯系作者獲得授權,非商業轉載請注明出處. GET和POST是HTT ...

利用kibana插件對Elasticsearch查詢

利用kibana插件對Elasticsearch查詢 Elasticsearch是功能非常強大的搜索引擎,使用它的目的就是為了快速的查詢到需要的數據. 查詢分類: 基本查詢:使用Elasticsear ...

總結

以上是生活随笔為你收集整理的ccf命令行选项只能用c实现_CCF-201403-3-命令行选项的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产又黄又粗又长 | 91久久 | 亚洲视频免费 | eeuss鲁片一区二区三区在线观看 | 91精品国自产在线 | 好看的黄色录像 | 人人干美女 | 简单av在线| 国产精品3p视频 | 少妇诱惑av | 国产欧美一区二区三区精华液好吗 | 狠狠干2017| 国产冒白浆 | 国产福利一区在线观看 | 红猫大本营在线观看的 | 亚洲熟妇丰满大屁股熟妇 | 中文在线观看免费视频 | 成人精品免费在线观看 | 丝袜 亚洲 另类 欧美 重口 | 国产一级做a | 韩国美女黄色片 | 91色国产 | 国产精品高清无码 | 日韩国产欧美一区 | 国产成人精品一区二区三区在线观看 | 噜噜色综合 | 少妇理论片 | 国产精品毛片一区视频播 | 日日骚av | 国产乱淫av一区二区三区 | 午夜家庭影院 | 伊人久久精品 | 人妻少妇精品一区二区 | 天堂www中文在线资源 | 奇米中文字幕 | 日韩九九九 | 欧美一级片在线 | 先锋影音亚洲 | 国产免费观看一区 | 图片区偷拍区小说区 | 伊人网影院 | 十八岁世界在线观看高清免费韩剧 | 人人人超碰 | 国产精品美女久久久久久久久 | 国产视频1 | 69精品| 国产福利视频一区二区三区 | 久久久免费看片 | 欧洲精品一区二区三区久久 | 中文字幕一区二区人妻 | 成人调教视频 | 成人18视频在线观看 | 久久久久久av无码免费网站 | 中文字幕久久久久久久 | 欧美性猛交xxxxx水多 | 怨女1988国语版在线观看高清 | 性做爰视频免费播放大全 | 日韩不卡一区二区三区 | av自拍网 | 精品少妇一区二区三区免费观看 | 亚洲免费精品视频在线观看 | 不用播放器的av网站 | 国产精品久久AV无码 | 午夜特片网 | 我们的2018在线观看免费高清 | 少妇aa| 中文字幕黑人 | 亚洲精品一区二区三区四区 | 一个人看的www片免费高清中文 | 午夜精产品一区二区在线观看的 | 久久这里只有精品久久 | 日本波多野结衣在线 | 成人h在线观看 | 成人av影视在线观看 | 精品人妻无码一区二区三区蜜桃一 | 国产超碰在线 | 欧美精品在线观看 | 日本丰满少妇一区二区三区 | 伊人五月综合 | 成人免费视频国产免费 | 日韩区一区二 | 91打屁股| 中国大陆一级片 | 免费操片 | 素人fc2av清纯18岁 | 三级a视频 | 日韩乱码人妻无码中文字幕 | 茄子香蕉视频 | 一区二区三区四区在线免费观看 | 欧美xxxx非洲| 伊人tv | 奇米网狠狠干 | jizzjizz欧美69巨大 | 日本少妇xxxxxx | 青青草在线免费观看 | 国产精品国产三级国产专区51区 | 夫妻自拍偷拍 | 日韩美女一区二区三区 | 少妇脱了内裤让我添 |