Code:vector<string> getSeparateStringsFromDelimString( const string& s, const string& f ) { vector<string> temp; if ( f.empty() ) { temp.push_back( s ); return temp; } typedef string::const_iterator iter; const iter::difference_type f_size( distance( f.begin(), f.end() ) ); iter i( s.begin() ); for ( iter pos; ( pos = search( i , s.end(), f.begin(), f.end() ) ) != s.end(); ) { temp.push_back( string( i, pos ) ); advance( pos, f_size ); i = pos; } temp.push_back( string( i, s.end() ) ); return temp; } string getStringWithDelimFromVector( vector<string> stringWithouthDelim,string delim ) { string stringWithDelim; if(stringWithouthDelim.size() == 0) return stringWithDelim; for(int i = 0; i < stringWithouthDelim.size(); i++) { stringWithDelim += stringWithouthDelim[i]; if( i != (stringWithouthDelim.size()-1) ) stringWithDelim += delim; } return stringWithDelim; }