目录
题目链接:参数解析_牛客题霸_牛客网 (nowcoder.com)
题目链接:参数解析_牛客题霸_牛客网 (nowcoder.com)
解题思路:
通过以空格和双引号为间隔,统计参数个数。对于双引号,通过添加flag,保证双引号中的空格被输出。
代码实现:
#include <iostream>
#include<string>
#include<vector>
using namespace std;
void cmdLineParse(const string& str)
{
string tmp="";
vector<string> svec;
bool flag=false;//用于判断是否处于字符串的状态
for(int i=0;i<str.size();i++)
{
if(str[i]=='"')//判断是否是字符串的起始或结束
{
flag=!flag;
}
else if(str[i]==' '&&!flag)//判断参数的分隔或者是否位字符串的内存
{
svec.push_back(tmp);
tmp="";
}
else //正常参数
{
tmp+=str[i];
}
}
svec.push_back(tmp);//d:\\e
cout<<svec.size()<<endl;
for(int i=0;i<svec.size();i++)
{
cout<<svec[i]<<endl;
}
}
int main()
{
string str;
while(getline(cin,str))
{
cmdLineParse(str);
}
return 0;
}