0

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

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

3 回答 3

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()));

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

于 2012-04-19T05:01:08.397 回答
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());
于 2012-04-19T04:55:13.937 回答
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
于 2012-04-19T04:58:25.470 回答