#include <iostream>
#include <iterator>
#include <sstream>
#include <vector>
template<typename Out>
void split(const std::string &s, char delimiter, Out result)
{
std::stringstream ss;
ss.str(s);
std::string item;
while (std::getline(ss, item, delimiter))
*(result++) = item;
}
std::vector<std::string> split(const std::string &s, char delimiter)
{
std::vector<std::string> elements;
split(s, delimiter, std::back_inserter(elements));
return elements;
}
int main()
{
std::string s = "c++ c c# java python php";
std::vector<std::string> result = split(s, ' ');
for (auto word = result.begin(); word != result.end(); word++)
std::cout << *word << std::endl;
return 0;
}
/*
run:
c++
c
c#
java
python
php
*/