我想拆分字符串" / 1/2/3/4"四部分,即1,2,3,4。我正在使用boost来分割字符串
#include <boost/algorithm/string.hpp>
#include <vector>
#include <string>
int main(int argc, char** argv) {
std::vector<std::string> v;
//boost::split(v, argv[1], boost::is_any_of("/"));
boost::split(v, argv[1], [](char c){return c == '/';});
for( auto i : v )
std::cout << i << ' ';
std::cout << std::endl;
std::cout << v.size() << std::endl;
return 0;
}
当我跑步时,我在我的向量中加了一个空字
[oracle@localhost split]$ ./a.out /1/2/3/4
1 2 3 4
5
由于我的单词(/ 1/2/3/4)以分隔符开头。我该如何解决这个问题?我希望矢量只能容纳1,2,3,4。
答案 0 :(得分:3)
要扔掉第一个角色:
boost::split(v, argv[1] + 1, [](char c){return c == '/';});
但请记住,此时strlen
的{{1}}为argv[1]