参数解析_i++


#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
string str;
vector<string>res;
while(getline(cin,str))
{
//临时字符串
string tmp;
bool flag=false;//是否处于双引号内
//最后一个参数之后默认没有空格,在处理之前添加一个空格,后面逻辑好处理
str.push_back(' ');
for(int i=0;i<str.size();i++)
{
//目前索引 是否处于”“包含的开始
if(str[i]=='"')
{
//标志位置位
flag=true;
continue;
}
//目前索引是否处于””结束的位置
if(str[i]=='"')
{
//标志位退出
flag=false;
continue;
}
//处于正常参数内,和处于包含在“”号正常参数内
if((str[i]!=' '&&str[i]!='"')||(str[i]==' '&&flag==true))
{
tmp.push_back(str[i]);
}
//到了要分割加入到向量的时候了
else if(str[i]==' '&&flag==false)
{
res.push_back(tmp);
//别忘记清空临时字符串
tmp.clear();
}

}
//按照题意输出
cout<<res.size()<<endl;
for(int i=0;i<res.size();i++)
{
cout<<res[i]<<endl;
}

}

}