absc|238066463|xyxz|A9BCV9.1|RIMO_PROM4
我想根据(“|”)拆分它。在python中执行它是一项简单的任务,但是在c ++中 我该怎么办?
我使用boost::split
,但它不起作用?
line="absc|238066463|xyxz|A9BCV9.1|RIMO_PROM4"
vector<string> tokens;
boost::split(tokens,line,boost::is_any_of("|"));
cout<<tokens[0]<<"\t"<<tokens[1]<<endl;
有什么建议吗?
答案 0 :(得分:0)
有几种方法可以做到这一点。一个避免使用外部库,但仍然相当简单和直接的一个看起来像这样:
std::vector<std::string> split(std::string const &input, char sep) {
std::istringstream buffer(input);
std::vector<std::string> ret;
std::string token;
while (std::getline(buffer, token, sep))
ret.push_back(token);
return ret;
}
这不是最快的方法,但字符串标记化通常并不重要。