#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)) {
if (word != "")
*v++ = word;
}
}
std::vector<std::string> split_by_delimiter(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_by_delimiter(str, ':');
for(auto const& s : v)
std::cout << s << "\n";
return 0;
}
/*
run:
C++
is
a
general
purpose
programming
language
*/