首页 > 解决方案 > 如何将字符串流拆分为具有 2 种分隔符(空格和引号)的向量

问题描述

任何人都可以帮助将字符串流拆分为向量吗?

我有一个较早的实现,如下所示:

int main()
{
    string console_cmd;
    std::vector<string> cmdList;

    cout << ">> ";
    getline(cin, console_cmd);

    istringstream iss(console_cmd);

    copy(istream_iterator<string>(iss),
        istream_iterator<string>(),
        back_inserter(cmdList));

    return 0;
}

我的输入大多是这样的

>> check -file /folder/filename.txt

所以向量 cmdList 将包含

cmdList[0] = check
cmdList[1] = -file
cmdList[2] = /folder/filename.txt

后来,我遇到了目录问题,尤其是带有空格的目录。例子:

>> check -file /folder name/filename.txt

这个的输出变成了这样:

cmdList[0] = check
cmdList[1] = -file
cmdList[2] = /folder
cmdList[3] = name/filename.txt

我希望它看起来像这样:

cmdList[0] = check
cmdList[1] = -file
cmdList[2] = /folder name/filename.txt

我正在考虑使用分隔符,但我不知道如何实现这一点。

编辑:添加我将如何使用分隔符

>> check -file "/folder name/filename.txt"

谢谢您的帮助!

标签: c++

解决方案


推荐阅读