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; }
これは、文字列分割への私のコードです。以下の文字列を送信して、区切り文字「&」で分割しました
"f0=fname0&l0=lname0&f1=fname1&l1=lname1&f2=fname2&l2=lname2&f3=&l3=".
以下のようなベクトルで結果が得られました。
f0=fname0 l0=lname0 f1=fname1 l1=lname1 f2=fname2 l2=lname2 f3= l3=
ここで、結果の文字列をセパレータ「=」で再度送信しました。「l2=lname2」で問題なく動作します。しかし、 "f3=" と "l3=" の場合、文字列の最後の位置にセパレーターがあります。そのため、値が null であるかどうかを見つけることができませんでした。値 (「=」の左側が名前、右側が値) が空かどうかを知りたいです。どうすればこれを確認できますか。