我试图通过将字符串句子拆分为空格字符来将字符串句子转换为单词矢量。
void turnVect(string str)
{
int i, prevPos = 0;
for (i = 0; i < str.length(); i++)
{
if (str[i] == ' ')
{
words.push_back(str.substr(prevPos, i));
prevPos = i + 1;
}
}
}
int main()
{
turnVect("Hello my name is");
cout << words.size() << endl;
cout << words[0] << endl;
cout << words[1] << endl;
cout << words[2];
return 0;
}
到目前为止我得到了这个输出,这绝对不是我所期望的。有什么帮助吗?
3
Hello
my name
name is
答案 0 :(得分:1)
words.push_back(str.substr(prevPos, i - prevPos));
答案 1 :(得分:0)
试试这个:
#include <iostream>
#include <string>
#include <boost/tokenizer.hpp>
using namespace std;
using namespace boost;
int main(int argc, char** argv)
{
string text = "token test string";
char_separator<char> sep(" ");
tokenizer<char_separator<char>> tokens(text, sep);
for (const string& t : tokens)
{
cout << t << "." << endl;
}
}
取自here