It's easiest if you use the standard library:
Code:
#include <sstream>
#include <string>
#include <vector>
class Split {
public:
typedef std::vector<std::string>::iterator iterator;
typedef std::vector<std::string>::const_iterator const_iterator;
public:
Split ( const std::string& s, const char sep );
public:
iterator begin() { return split.begin(); }
const_iterator begin() const { return split.begin(); }
iterator end() { return split.end(); }
const_iterator end() const { return split.end(); }
private:
std::string original;
std::vector<std::string> split;
};
Split::Split ( const std::string& s, const char sep )
: original ( s )
{
std::istringstream in ( original );
std::string token;
while ( getline ( in, token, sep ) )
split.push_back ( token );
}
#include <iostream>
using namespace std;
int main()
{
Split split ( "bla*blabla*blablabla", '*' );
for ( Split::const_iterator it = split.begin(); it != split.end(); ++it )
cout<< *it <<endl;
}