#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;
}