如何使用分隔符</char>将vector <char>拆分为字符串

时间:2012-04-19 04:51:18

标签: c++ delimiter

我有一个字符向量,其中包含一些用逗号分隔的单词。 我需要按单词分隔文本并将这些单词添加到列表中。 感谢。

vector<char> text;
list<string> words;

3 个答案:

答案 0 :(得分:2)

我想我会这样做:

while ((stop=std::find(start, text.end(), ',')) != text.end()) {
    words.push_back(std::string(start, stop));
    start = stop+1;
}
words.push_back(std::string(start, text.end()));

编辑:那就是说,我必须指出这个要求似乎有点奇怪 - 你为什么要开始std::vector<char>std::string会更常见。

答案 1 :(得分:0)

vector<char> text = ...;
list<string> words;

ostringstream s;

for (auto c : text)
    if (c == ',')
    {
        words.push_back(s.str());
        s.str("");
    }
    else
        s.put(c);

words.push_back(s.str());

答案 2 :(得分:0)

尝试编写这个简单的伪代码并查看它是如何进行的

string tmp;
for i = 0 to text.size
    if text[i] != ','
       insert text[i] to tmp via push_back
    else add tmp to words via push_back and clear out tmp