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;
}