#include <iostream>
#include <vector>
#include <string>
using namespace std;
std::vector<std::string> splitstring(std::string const &src, const char *delimiter)
{
auto isdelim = [](char p, const char *delim) {
while (*delim)
{
if (*delim == p)
return true;
delim++;
}
return false;
};
char const *psrc = src.c_str();
char const *pstart = psrc;
char const *pend;
std::vector<std::string> strs;
while (*psrc)
{
if (isdelim(*psrc, delimiter))
{
pend = psrc;
if (pend > pstart)
{
strs.emplace_back(std::string(pstart, pend));
}
pstart = psrc + 1;
}
psrc++;
}
pend = psrc;
if (pend > pstart)
{
strs.emplace_back(std::string(pstart, pend));
}
return strs;
}
int main()
{
std::string src = ";aaa;bbb;;;ccc|ddd|eee||";
std::vector<std::string> strs = splitstring(src, ";|");
for (auto &s : strs)
{
std::cout << s << std::endl;
}
std::cout << "Hello World!\n";
}