boost :: split:如何用字符拆分字符串?

时间:2011-07-08 04:46:40

标签: c++

我遇到了这个简单的问题。 假设我有一个由字符[0-9]组成的字符串。我想要做的是使用boost :: split。

将字符串拆分为单个字符
std::string str = "0102725";
std::vector<std::string> str2;
boost::split(str2, str, boost::is_any_of(SOMETHING));

我正在寻找SOMETHING,因此str2 [0]包含“0”,str2 [1]包含“1”,str2 [2]包含“0”,依此类推。到目前为止,我已尝试过“”,“:”和“:”,但没有运气......

2 个答案:

答案 0 :(得分:7)

boost::split对此有点矫枉过正。

for (size_t i=0; i < str.length(); i++)
  str2.push_back(std::string(1, str.at(i)));

答案 1 :(得分:3)

除了@Mat的方法,这是我的看法。由于你要分离你可能不想要的字符,

vector<string> str2; // acquires character + extra space for '\0'

而是,

vector<char> str2; // only single character

以下是您可以选择的方式:

for(unsigned int i = 0; i < str.size(); i++)
  str2.push_back(str[i]);

Demo。您可以根据需要访问str2[i]