正则表达式,没学会怎么匹配但不捕获,所以只能正则了两遍。
#include<regex>
#include<iostream>
using namespace std;
string str;
int cnt = 0; //计数器
vector<string> v;
int main()
{
    getline(cin, str);
    regex reg("\".+\"|[^ ]+");  //匹配两个”“之间的内容(包含”“) 或 不含空格的串, 或两边同时满足的时候优先匹配左边的表达式,顺序不能反,否则匹配不到""之间的内容
    for(sregex_iterator itr(str.begin(),str.end(),reg),itr_end; itr != itr_end; ++itr)
    {
        v.push_back(itr->str());
        cnt++;
    }
    cout<<cnt<<endl;   
    auto itr = v.begin();
    while(itr != v.end())
    {
        regex reg1("\"");  //匹配"
        cout << regex_replace(*itr, reg1, "") <<endl;  //删除" 注意replace返回是处理之后的字符串,没有匹配到则返回原串
        ++itr;
    }
    return  0;
}