C++のsplit関数はデフォルトではないので、
作るか、boostのものを使うかってことになる。
SnapDragonさんのsplit関数。たしかこんなんだったと思う。
C++クックブックのものよりもずっとイカス。
boostを使うと
is_any_ofは関数テンプレート。引数が区切り文字ならtrueを返す。
ネットでググったら出てきたsplitのしかた。
スペース区切りのものならこれでいいかも。
vector<string> vec( begin, end)ってことで一つ。
<>が消えていたので修正。
作るか、boostのものを使うかってことになる。
SnapDragonさんのsplit関数。たしかこんなんだったと思う。
C++クックブックのものよりもずっとイカス。
typedef vector<string> VS; VS split( string s, string c ) { VS ret; for( int i=0, n; i <= s.length(); i=n+1 ){ |
boostを使うと
#include <boost/algorithm/string.hpp> string str1("hello abc-*-ABC-*-aBc goodbye"); vector<string> SplitVec; split( SplitVec, str1, is_any_of("-*") ); // SplitVec == { "hello abc","ABC","aBc goodbye" } |
is_any_ofは関数テンプレート。引数が区切り文字ならtrueを返す。
ネットでググったら出てきたsplitのしかた。
スペース区切りのものならこれでいいかも。
string Str = "alex delia john"; std::istringstream iss( Str ); std::vector<string> vec( (std::istream_iterator<string>(iss)), std::istream_iterator<string>() ); |
vector<string> vec( begin, end)ってことで一つ。
<>が消えていたので修正。