题解 | #参数解析#
参数解析
https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677
//分享思路,其实就是判断几种情况
//如果是引号就循环读完,并且需要跳过引号后的空格
//如果是空格并且tmp里面有东西,就直接加到结果里去
//不符合上述两种情况就往临时string里加字符
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main(){
string inputstr;
getline(cin, inputstr);
inputstr += " ";//保证最后一个字符串的输出,因为会去判断空格
vector<string> strres;
string tmp;
for(int i = 0;i<inputstr.size();++i){
if(inputstr[i] == '"'){
++i;
while(inputstr[i]!='"'){
tmp+=inputstr[i++];
}
++i;
strres.emplace_back(tmp);
tmp = "";
continue;
}
if(inputstr[i] == ' ' && tmp!=""){
strres.emplace_back(tmp);
tmp = "";
continue;
}
tmp+=inputstr[i];
}
//strres.emplace_back(tmp);
cout << strres.size()<< endl;
for(int i = 0;i<strres.size();++i){
cout << strres[i]<< endl;
}
return 0;
}
