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

編集:そうは言っても、要件が少し奇妙に思えることを指摘しなければなりません-なぜあなたはで始まるのstd::vector<char>ですか?A のstd::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 に答える