カンマ分割をSTLで。 – プログラミング – Home

通知
すべてクリア

[解決済] カンマ分割をSTLで。


kyu
 kyu
(@kyu)
ゲスト
結合: 22年前
投稿: 27
Topic starter  

std::string にcsvの一行が入っているとして、
それをカンマで分割し、std::vector<std::string>に
格納したいです。
いつもはstrtokとかCStringとか使ってチマチマ切ってるんだけど
STLだとうまく書けないです。ループ使わないでいけたような。。。
STL得意な方教えてください。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

#include <string>

template<typename OutputIterator>
OutputIterator
tokenize(const std::string& input,
OutputIterator result,
const std::string& delim) {
std::string::size_type first = 0;
std::string::size_type last = 0;
while ( (first = input.find_first_not_of(delim, last))
!= std::string::npos ) {
last = input.find_first_of(delim, first);
*result++ = input.substr(first,
last == std::string::npos ? last : last-first);
}
return result;
}

// おためし

#include <iostream>
#include <iterator>

int main() {
std::string input = abc,def,ghi,jkl;
tokenize(input, std::ostream_iterator<std::string>(std::cout,\n), ,);
return 0;
}


返信引用
kyu
 kyu
(@kyu)
ゲスト
結合: 22年前
投稿: 27
Topic starter  

勉強なります。
サンキュでした。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました