题解 | #参数解析#

参数解析

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

#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
#include<string>
#include<vector>

using namespace std;

// 1. 参数解析
void cmdLineParse(const string& s)
{
	string tmp;
	vector<string> vs;
	bool flag = false; // 默认不处于字符串的状态
	for (int i = 0; i < s.size(); i++)
	{
		// 判断是否处于字符串的状态
		if (s[i] == '"')
		{
			// 取反因为还要遇到下一个",当在遇到 " 就不处于字符串的状态了
			flag = !flag;
		}
		// 判断是否为参数分隔符
		else if (s[i] == ' ' && !flag)
		{
			// 为空格直接把字符串放进vector
			vs.push_back(tmp);
			// clear
			tmp = "";
		}
		// 正常的参数
		else
		{
			tmp += s[i];
		}
	}
   // xcopy /s c:\\ d:\\e
   // 最后一个参数后没有分隔符分割,需要特殊处理一下,尾插到vector中去
vs.push_back(tmp); cout << vs.size() << endl; for (int i = 0; i < vs.size(); i++) { cout << vs[i] << endl; } } int main() { string str; while (getline(cin, str)) { cmdLineParse(str); } return 0; }

全部评论

相关推荐

今年读完研的我无房无车无对象,月入还没有过万&nbsp;看到他在朋友圈晒房产证,感叹自己白读了这么多年书
梦想是成为七海千秋:那咋了,双9毕业的现在还没存款呢(因为没念完),高中毕业的去直播带货月入几百万也是完全有可能的,退一万步讲,有些人刚出生父母就给买车买房了,上哪说理去,哪怕是同一个起点也会有截然不同的走向,过好自己的生活就完事了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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