如何在C ++中分割不带stringstream
和strtok
的字符串(提取单词)?
我想拆分一个在每个单词之间有多个连续空格的字符串,它可能跨越多行,并且在新行开始之前有空格。
到目前为止,我有这个,但它只能处理一个空格
while (input.compare(word) != 0)
{
index = input.find_first_of(" ");
word = input.substr(0,index);
names.push_back(word);
input = input.substr(index+1, input.length());
}
谢谢
答案 0 :(得分:1)
以下是参考资料:
std::string input = " hello world hello "; // multiple spaces
std::string word = "";
std::vector<std::string> names;
while (input.compare(word) != 0)
{
auto index = input.find_first_of(" ");
word = input.substr(0,index);
input = input.substr(index+1, input.length());
if (word.length() == 0) {
// skip space
continue;
}
// Add non-space word to vector
names.push_back(word);
}
签入Wandbox