Cheque vacío con cadena dividida

vector<string> SplitString (string aString,char *sep) 
{  
  vector<string> vec;
  char * cstr,*val,*p;
  string str = aString;
  cstr = new char [str.size()+1];
  strcpy (cstr, str.c_str());
  p=strtok (cstr,sep);
  while(p!=NULL)
  {    
    vec.push_back(p);  
    p=strtok(NULL,sep);

  }delete[] cstr;return vec; }

Este es mi código para dividir la cadena. Envié la siguiente cadena para dividir con separador '&'

"f0 = fname0 & l0 = lname0 & f1 = fname1 & l1 = lname1 & f2 = fname2 & l2 = lname2 & f3 = & l3 =".

Conseguí el resultado en el vector como abajo.

f0 = fname0 l0 = lname0 f1 = fname1 l1 = lname1 f2 = fname2 l2 = lname2 f3 = l3 =

Ahora volví a enviar las cadenas resultantes con separador '='. Está funcionando bien con "l2 = lname2". Pero para "f3 =" y "l3 =" Mi separador en la última posición de la cadena. Así que no pude encontrar el valor es nulo o no. Quiero saber si el valor (el lado izquierdo de '=' es nombre y el lado derecho es valor) está vacío o no. ¿Cómo puedo comprobar esto.

Respuestas a la pregunta(2)

Su respuesta a la pregunta