我有一个字符向量,其中包含一些用逗号分隔的单词。 我需要按单词分隔文本并将这些单词添加到列表中。 感谢。
vector<char> text;
list<string> words;
答案 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