我有一个字符向量,其中包含一些用逗号分隔的单词。我需要按单词分隔文本并将这些单词添加到列表中。谢谢。
vector<char> text;
list<string> words;
我想我会这样做:
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
会更常见。
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());
尝试编写这个简单的伪代码,看看它是如何进行的
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