/////////////////////////////////////////////////////////// ///////////////// Have an itch? Scratch it! /////////////// ///////////////////////// SCRATCH ///////////////////////// ///////////////////// A MUD Server //////////////////// ///////////////////// By: Jared Devall //////////////////// ///////////////////// Thanks: //////////////////// ///////////////////// DIKU/Merc/ROM //////////////////// ///////////////////// Aetas/Deus Gang //////////////////// ///////////////////// Beej //////////////////// /////////////////////////////////////////////////////////// #include "split.h" #include <string> using namespace std; ////////////// // Get Word // ////////////// string::const_iterator getword ( const string &src, string &dest, const char delim ) { return getword( src.begin(), src.end(), dest, delim ); } string::const_iterator getword ( string::const_iterator it, string::const_iterator end, string &dest, const char delim ) { for ( ; it != end; ++it ) { if ( *it == delim ) { ++it; break; } dest += *it; } return it; } ///////////////// // Split Delim // ///////////////// vector< string > split( const string &src, char delim ) { vector<string> dest; string current; for ( string::const_iterator c = src.begin(); c != src.end(); ++c ) { if ( (*c) == delim ) { dest.push_back( current ); current = ""; continue; } else { current.push_back( (*c) ); } } if ( !current.empty() ) dest.push_back( current ); return dest; } string::const_iterator split( const string &src, string &word1, char delim ) { return getword( src, word1, delim ); } string::const_iterator split( const string &src, string &word1, string &word2, char delim ) { return getword( getword( src, word1, delim ), src.end(), word2, delim ); } string::const_iterator split( const string &src, string &word1, string &word2, string &word3, char delim ) { return getword( getword( getword(src, word1, delim ), src.end(), word2, delim ), src.end(), word3, delim ); } string::const_iterator split( const string &src, string &word1, string &word2, string &word3, string &word4, char delim ) { return getword( getword( getword( getword( src, word1, delim ), src.end(), word2, delim ), src.end(), word3, delim ), src.end(), word4, delim ); } /////////// // Split // /////////// string::const_iterator split( const string &src, string &word1 ) { return getword( src, word1, '\0' ); } string::const_iterator split( const string &src, string &word1, string &word2 ) { return getword( getword( src, word1 ), src.end(), word2, '\0' ); } string::const_iterator split( const string &src, string &word1, string &word2, string &word3 ) { return getword( getword( getword( src, word1 ), src.end(), word2 ), src.end(), word3, '\0' ); } string::const_iterator split ( const string &src, string &word1, string &word2, string &word3, string &word4 ) { return getword( getword( getword( getword( src, word1 ), src.end(), word2 ), src.end(), word3 ), src.end(), word4, '\0' ); } string quotesSplit( const string &src, string &dest ) { string::const_iterator it; for ( it = src.begin(); it != src.end(); ++it ) { } }