¥0
在C++中如何高效的split一个string?
1个回答
0
采纳
可以这样
#include <iostream>
#include <sstream>
#include <string>
int main()
{
std::string s("Somewhere down the road");
std::istringstream iss(s);
do
{
std::string sub;
iss >> sub;
std::cout << "Substring: " << sub << std::endl;
} while (iss);
}
也可以这样:
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
int main() {
using namespace std;
string sentence = "And I feel fine...";
istringstream iss(sentence);
copy(istream_iterator<string>(iss),
istream_iterator<string>(),
ostream_iterator<string>(cout, "\n"));
}
上面的代码如果不想输出到控制台,也可以将结果存到容器里:
vector<string> tokens;
copy(istream_iterator<string>(iss),
istream_iterator<string>(),
back_inserter(tokens));
或者直接创建vector:
vector<string> tokens{istream_iterator<string>{iss},
istream_iterator<string>{}};
撰写回答