コンマで区切られたいくつかの単語を含む文字のベクトルがあります。テキストを単語ごとに区切り、それらの単語をリストに追加する必要があります。ありがとう。
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()));
編集:そうは言っても、要件が少し奇妙に思えることを指摘しなければなりません-なぜあなたはで始まるのstd::vector<char>
ですか?A のstd::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