<string>
ヘッダにあるstd::getline()
関数は、行単位の読み取りだけでなく、区切り文字を指定するバージョンもあるので、splitの実装に使えたりする。
#include <iostream> #include <string> #include <sstream> #include <vector> std::vector<std::string> split(const std::string& input, char delimiter) { std::istringstream stream(input); std::string field; std::vector<std::string> result; while (std::getline(stream, field, delimiter)) { result.push_back(field); } return result; } int main() { const std::string input = "aaa,bbb,ccc"; for (const std::string& s : split(input, ',')) { std::cout << s << std::endl; } }
出力:
aaa bbb ccc