题解 | #参数解析#

参数解析

https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677

#include <iostream>

#include <string>

using namespace std;

#include<vector>

int main() {

    string s;

    while (getline(cin, s)) { // 注意 while 处理多个 case

        vector<string> v;//存放参数

        bool flag=false;//是否在“”内部

        string cur="";//记录参数

        for(int i=0;i<s.length();i++)

        {

            if(s[i]==' ')//遇到空格判断是否在""内

            {

                if(flag==false)//如果不在,则表明此参数结束,存入容器中

                {

                    v.push_back(cur);

                    cur="";

                }

                else {//如果在,则把空格也加入到参数中

                    cur+=s[i];

                }

            }

            else if(s[i]=='"')//判断是左引号还是右引号

            {

                if(flag==false)//如果是左引号,则表明接下来进入“”内

                {

                    flag=true;

                }

                else {//如果是右引号,则表明接下来离开“”内

                    flag=false;

                }

            }

            else //不是空格和引号则加入参数中

            {

                cur+=s[i];

            }

        }

        v.push_back(cur);//最后一个参数不以空格结尾,所以需要手动加入容器

        cout<<v.size()<<endl;//容器大小即为参数个数

        for(int i=0;i<v.size();i++)//按顺序输出各参数

        {

            cout<<v[i]<<endl;

        }

    }

}

// 64 位输出请用 printf("%lld")

全部评论

相关推荐

真是啥人都碰上了
牛客78696106...:力工思维造就炫压抑的安卓人
点赞 评论 收藏
分享
点赞 评论 收藏
分享
09-28 17:38
门头沟学院 Java
小肥罗:众生皆吗喽,那满山吗喽也是我腚最红!!!
我的秋招日记
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务