我的关注 |
¥0 在C++中如何高效的split一个string?
c++
0

在C++中如何高效的split一个string?

大智若愚
修改
评论(0)
1个回答
0
采纳
可以这样
  1. #include <iostream>
  2. #include <sstream>
  3. #include <string>
  4. int main()
  5. {
  6. std::string s("Somewhere down the road");
  7. std::istringstream iss(s);
  8. do
  9. {
  10. std::string sub;
  11. iss >> sub;
  12. std::cout << "Substring: " << sub << std::endl;
  13. } while (iss);
  14. }
也可以这样:
  1. #include <iostream>
  2. #include <string>
  3. #include <sstream>
  4. #include <algorithm>
  5. #include <iterator>
  6. int main() {
  7. using namespace std;
  8. string sentence = "And I feel fine...";
  9. istringstream iss(sentence);
  10. copy(istream_iterator<string>(iss),
  11. istream_iterator<string>(),
  12. ostream_iterator<string>(cout, "\n"));
  13. }

上面的代码如果不想输出到控制台,也可以将结果存到容器里:

  1. vector<string> tokens;
  2. copy(istream_iterator<string>(iss),
  3. istream_iterator<string>(),
  4. back_inserter(tokens));

或者直接创建vector:

  1. vector<string> tokens{istream_iterator<string>{iss},
  2. istream_iterator<string>{}};
采纳答案
佛法不二
修改
评论 (0)
撰写回答