每日一題 25 引數解析 字串,長題目

2021-09-28 14:47:55 字數 1238 閱讀 3161

在命令列輸入如下命令:

xcopy /s c:\ d:\,

各個引數如下:

引數1:命令字xcopy

引數2:字串/s

引數3:字串c:\

引數4: 字串d:\

請編寫乙個引數解析程式,實現將命令列各個引數解析出來。

解析規則:

1.引數分隔符為空格

2.對於用「」包含起來的引數,如果中間有空格,不能解析為多個引數。比如在命令列輸入xcopy /s 「c:\program files」 「d:\」時,引數仍然是4個,第3個引數應該是字串c:\program files,而不是c:\program,注意輸出引數時,需要將「」去掉,引號不存在巢狀情況。

3.引數不定長

4.輸入由用例保證,不會出現不符合要求的輸入

輸入描述:

輸入一行字串,可以有空格

輸出描述:

輸出引數個數,分解後的引數,每個引數都獨佔一行

示例1

輸入

xcopy /s c:\ d:\輸出4

xcopy

/sc:\

d:\

本題考查字串及string類的應用。通過以空格和雙引號為間隔,統計引數個數。對於雙引號,通過新增flag,保證雙引號中的空格被輸出。對於類題目需要逐條去分析題目要求,逐條實現即可。

#include

#include

using

namespace std;

intmain()

while

(str[i]

!='"');

}}//以空格計算個數,空格數量比引數個數少1

cout << count +

1<< endl;

//用flag表示是否包含雙引號,0表示有雙引號

//雙引號中的空格要列印出來

//用異或改變flag的值,兩個雙引號可以使flag復原

int flag =1;

for(

int i =

0; i < str.

size()

; i++

) cout << endl;

}return0;

}

每日一題 倒置字串

題目描述 將一句話的單詞進行倒置,標點不倒置。比如 i like beijing.經過函式後變為 beijing.like i 輸入描述 每個測試輸入包含1個測試用例 i like beijing.輸入用例長度不超過100 輸出描述 依次輸出倒置之後的字串,以空格分割 示例1輸入 i like be...

每日一題 倒置字串

題目 題目描述 將一句話的單詞進行倒置,標點不倒置。比如 i like beijing.經過函式後變為 beijing.like i 輸入描述 每個測試輸入包含1個測試用例 i like beijing.輸入用例長度不超過100 輸出描述 依次輸出倒置之後的字串,以空格分割 輸入 i like be...

《每日一題》最大回文子字串

使用manacher法求解 def findbmstr s 建立新的s new s for sub in s new s sub new s 初始化p,記錄以每個在new s中的字元為中心的最大回文子串的單邊延伸量 l len new s p 1 for in range 遍歷每個字元,計算p i ...