首页 > 解决方案 > 字符串开头的分隔符

问题描述

我根据 delimiter 将字符串拆分为更小的部分"/"

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

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

标签: c++stringvectordelimiterstringstream

解决方案


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

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

推荐阅读