c++ - 字符串开头的分隔符
问题描述
我根据 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
我遇到的问题是"/"
前面有分隔符的字符串在结果向量的开头创建了一个空项。有没有办法避免这种情况或删除空项目?我尝试删除" "
向量中的所有字符串,但它们仍然存在。
解决方案
好吧,你可以跳过getline()
这样检测到的空字符串:
stringstream ss(stringToSplit);
string item;
vector<std::string> splitStrings;
while (std::getline(ss, item, delimiter))
{
if(!item.empty()) { // <<<<<<<<<<<<<
splitStrings.push_back(item);
}
}
推荐阅读
- amazon-web-services - Velocity Apache 访问地图中不存在的元素
- python - 尝试运行 --help 命令时出现 -bash 错误
- html - 使用 Ajax 在 Nodejs Express 项目中提交失败后无法保存表单输入
- json - 从 terraform 中的嵌套 json 中提取值
- python - 递归枚举JSON层次结构父/子到字典
- textures - Meshlab 选择替代纹理
- firebase - axios firebase 刷新令牌授权标头未覆盖
- flutter - Flutter - 与脚手架堆栈
- visual-studio-code - VS Code 中是否有在选项卡组之间跳转的热键?
- azure - 使用容器在 Azure 应用服务上配置自定义端口