我遇到了这个简单的问题。 假设我有一个由字符[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”,依此类推。到目前为止,我已尝试过“”,“:”和“:”,但没有运气......
答案 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]
。