**题目ID:****36898-**参数解析
链接:https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677?tpId=37&&tqId=21297&rp=1&ru=/activity/oj&qru=/ta/huawei/question-ranking
【题目解析】:
本题考察string的运用
【解题思路】:
本题通过以空格和双引号为间隔,统计参数个数。对于双引号,通过添加flflag,保证双引号中的空格被输出。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
int count = 0;
while(getline(cin,str))
{
//计算参数个数
for(int i=0;i<str.size();i++)
{
if(str[i] == ' ')
count++;
if(str[i] == '"')
{
do{
i++;
}while(str[i]!='"');
}
}
cout<<count+1<<endl;
bool flag = 1;//表示没有双引号
for(int i=0;i<str.size();i++)
{
if(str[i] == '"')
flag^=1;
//不是空格双引号直接打印
if(str[i]!=' '&&str[i]!='"')
cout<<str[i];
//双引号中间的空格打印
if(str[i] == ' '&&(!flag))
cout<<str[i];
if(str[i] == ' '&&flag)
cout<<endl;
}
cout<<endl;
}
return 0;
}