参数解析(c++,每日一题)
在命令行输入如下命令:
xcopy /s c: d:\
各个参数如下:
参数1:命令字 xcopy
……..
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
int i = 0, l = 0;
string s;
while (getline(cin, s))
{
vector<string>k;
for (int o = 0; i < s.size(); o++)
{
string q;
for (; i < s.size(); i++)
{
if (s[i] == '"'&&l == 0)
{
l = 1;
continue;
}
if (s[i] == '"'&&l == 1)
{
l = 0;
continue;
}
if (l == 1)
{
q.push_back(s[i]);
}
if (s[i] != ' '&&l == 0)
{
q.push_back(s[i]);
}
if (s[i] == ' '&&l == 0 || s[i + 1] == '\0')
{
k.push_back(q);
i++;
break;
}
}
}
cout << k.size() << endl;
for (i = 0; i < k.size(); i++)
{
cout << k[i] << endl;
}
i = 0;
}
}
变量 l 是用来判断字符中是否有”引号,若有则 l 的变量设为1,不选择空格式的输入到string q 里,直到再次遇到”引号时,把 l 的变量设置为0,完成对string q 的输入。
还没有评论,来说两句吧...