我寻找在c ++中拆分空格的函数。我在网上找到这个代码。我想知道说什么。
string line;
istringstream buf(line);
istream_iterator<string> beg(buf), end;
vector<string> tokens(beg, end);
return tokens;
答案 0 :(得分:0)
见:
#include <iostream>
#include <sstream>
#include <vector>
#include <iterator>
std::vector<std::string> SplitByWhiteSpace(std::string stringToSplit)
{
std::istringstream buf(stringToSplit);
std::istream_iterator<std::string> beg(buf), end;
return std::vector<std::string>(beg, end);
}
int main() {
std::vector<std::string> tokens = SplitByWhiteSpace("Hello World!");
for (std::size_t i = 0; i < tokens.size(); ++i)
{
std::cout<<tokens[i]<<"\n";
}
return 0;
}
该代码通过空格分割字符串并返回向量中的所有标记。然后,您可以在矢量中打印所有标记。
它几乎与做(相同的结果,不同的技术)相同:
std::vector<std::string> SplitByWhiteSpace(std::string stringToSplit)
{
std::string word;
std::vector<std::string> tokens;
std::istringstream buf(stringToSplit);
while (buf >> word)
{
tokens.push_back(word);
}
return tokens;
}