題目描述:
在命令行輸入如下命令: xcopy /s c:/ d:/,各個參數如下:
參數1:命令字xcopy
參數2:字符串/s
參數3:字符串c:/
參數4: 字符串d:/
請編寫一個參數解析程序,實現將命令行各個參數解析出來。
解析規則:
1.參數分隔符為空格
2.對于用“”包含起來的參數,如果中間有空格,不能解析為多個參數。
比如在命令行輸入xcopy /s "C:/PRogram files" "d:/"時,參數仍然是4個,
第3個參數應該是字符串C:/programfiles,而不是C:/program,注意輸出參數時,需要將""去掉,引號不存在嵌套情況。
3.參數不定長
4.輸入由用例保證,不會出現不符合要求的輸入
輸入描述: 輸入一行字符串,可以有空格
輸出描述: 輸出參數個數,分解后的參數,每個參數都獨占一行
輸入例子:xcopy /s c:/// d:///
輸出例子:
4
xcopy
/s
c:///
d:///
算法實現:
#include<iostream>#include<string>#include<vector> using namespace std; //************************************************ // * Author: 趙志乾 // * Date: 2017-2-21 // * Declaration: All Rigths Reserved !!! //***********************************************/ int main() { string instr; getline(cin,instr); instr+=" "; vector<string> ret; int len=0; for(int i=0;i<instr.length();i++) { if(instr[i]=='/"') { i++; len=0; while(i<instr.length()&&instr[i]!='/"') { len++; i++; } ret.push_back(instr.substr(i-len,len)); len=0; i=i+1; continue; } if(instr[i]!=' ') len++; else { ret.push_back(instr.substr(i-len,len)); len=0; } } cout<<ret.size()<<endl; for(int i=0;i<ret.size();i++) cout<<ret[i]<<endl; return 0; }算法實現
新聞熱點
疑難解答
圖片精選