C++: 文字列をスペースで分割
文字列を区切ってベクタに代入するエレガントな方法。
・コード
#include <string> #include <vector> #include <iostream> #include <sstream> #include <iterator> //------------------------------------------------------------------------------ // Split a string with space //------------------------------------------------------------------------------ std::vector<std::string> split(std::string const& s) { std::istringstream iss(s); return std::vector<std::string>( std::istream_iterator<std::string>(iss), std::istream_iterator<std::string>()); } int main() { std::vector<std::string> a = split("a dramatic turn of events"); std::vector<std::string> b = split("1 23 456 7890"); for (int i = 0; i < (int)a.size(); ++i) { std::cout << a[i] << std::endl; } for (int i = 0; i < (int)b.size(); ++i) { std::cout << b[i] << std::endl; } return 0; }
・出力
a dramatic turn of events 1 23 456 7890
参考:
http://blog.goo.ne.jp/linux_ekyu/e/3a89ea531b6a0ea6997dd68238b198ce
0 件のコメント:
コメントを投稿