#include <iostream>
#include <sstream>
#include <vector>
#include <iterator>
template <typename Out>
void split(const std::string &s, char delimiter, Out v) {
std::istringstream iss(s);
std::string word;
while (std::getline(iss, word, delimiter)) {
*v++ = word;
}
}
std::vector<std::string> split(const std::string &s, char delimiter) {
std::vector<std::string> v;
split(s, delimiter, std::back_inserter(v));
return v;
}
int main()
{
std::string str = "C++:is:a:general:purpose:programming:language";
std::vector<std::string> v = split(str, ':');
for (const auto &str : v)
std::cout << str << "\n";
return 0;
}
/*
run:
C++
is
a
general
purpose
programming
language
*/