题解 | #参数解析#
参数解析
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; }