华为-参数解析

网友投稿 705 2022-08-25

华为-参数解析

华为-参数解析

题目描述

在命令行输入如下命令:

xcopy /s c:\ d:\,

各个参数如下:

参数1:命令字xcopy

参数2:字符串/s

参数3:字符串c:\

参数4: 字符串d:\

请编写一个参数解析程序,实现将命令行各个参数解析出来。

解析规则:

1.参数分隔符为空格  2.对于用“”包含起来的参数,如果中间有空格,不能解析为多个参数。比如在命令行输入xcopy /s “C:\program files” “d:\”时,参数仍然是4个,第3个参数应该是字符串C:\program files,而不是C:\program,注意输出参数时,需要将“”去掉,引号不存在嵌套情况。 3.参数不定长  4.输入由用例保证,不会出现不符合要求的输入

输入描述:

输入一行字符串,可以有空格

输出描述:

输出参数个数,分解后的参数,每个参数都独占一行

示例1

输入

复制

xcopy /s c:\\ d:\\

输出

复制

4xcopy/sc:\\d:\\

题解:

注意处理引号即可

#include #include #include using namespace std;int main(){ string s; while (getline(cin, s)){ vector vct; string tmp; for (int i = 0; i < s.size(); i++){ if (s[i] == '\"'){ while (s[i + 2] != '\"'){ tmp += s[i + 1]; i++; } vct.push_back(tmp); tmp.clear(); i += 3; continue; } else if (s[i] != ' '){ tmp += s[i]; } else if (s[i] == ' '){ vct.push_back(tmp); tmp.clear(); } } if (tmp.size() > 0){ vct.push_back(tmp); tmp.clear(); } cout << vct.size() << endl; for (int i = 0; i < vct.size(); i++){ cout << vct[i] << endl; } } return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:华为-查找组成一个偶数最接近的两个素数
下一篇:JSP开发过程遇到的中文乱码问题及解决方案(jsp代码乱码)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~