【发布时间】:2020-02-11 15:28:03
【问题描述】:
如何解析这个字符串:
std::string input_str = "-10-20--300---400";
像这样进入向量:
std::vector<string> output = { "-10", "20", "-300", "--400" };
仅使用 C++ STL?
【问题讨论】:
-
作为一个老 C 程序员,我会使用 C 标准库中的
strspn、strcspn函数。但如果你不喜欢,那就手工完成...... -
@SergeBallesta 有趣。但是,如果我尝试使用 stringstream 和 getline 解决方案并删除向量中的所有空元素呢?如果向量中有空元素,我只需在下一个元素的开头添加分隔符字符串“-”?我想可以有更有效的解决方案......
-
@1201ProgramAlarm 您可以以这种讽刺的方式回答所有 SO 问题。顺便说一句,非信息性:)
-
我认为您需要一个更好的分隔符,从而使任务更接近琐碎。
-
只需将第一次出现的
-替换为空格即可。然后在调整后的字符串上使用stringstream。