字符串开头的定界符

时间:2018-10-20 09:03:53

标签: c++ string vector delimiter stringstream

我正在基于定界符"/"将字符串拆分为较小的段。

stringstream ss(stringToSplit);
string item;
vector<std::string> splitStrings;
while (std::getline(ss, item, delimiter))
{
   splitStrings.push_back(item);
}

一些字符串看起来像这样:

home/user/folder
/home/user/folder
banana/grape/onion
/banana/grape/onion

我遇到的问题是,前面带有定界符"/"的字符串在所得向量的开头创建了一个空项目。有没有办法避免这种情况或删除空项目? 我尝试删除向量中的所有" "字符串,但它们仍然保留。

1 个答案:

答案 0 :(得分:0)

好吧,您可以像这样跳过getline()检测到的空字符串:

stringstream ss(stringToSplit);
string item;
vector<std::string> splitStrings;
while (std::getline(ss, item, delimiter))
{
   if(!item.empty()) { // <<<<<<<<<<<<<
       splitStrings.push_back(item);
   }
}