C++ 从文本中提取字符串

C++ 从文本中提取字符串,c++,c++11,stl,programming-languages,C++,C++11,Stl,Programming Languages,我有一根绳子 My name is bob.I am fine 我想把每个单词和“.”放在一个字符串向量中 如何在C++中使用GETLIN来实现这一点? 编辑: std::vector<std::string> words; std::string word; while (cin>> word) { words.push_back(word); } std::向量词; 字符串字; while(cin>>word){ 单词。推回(单词); } 我想把“.”作

我有一根绳子

My name is bob.I am fine
我想把每个单词和“.”放在一个字符串向量中 如何在C++中使用GETLIN来实现这一点? 编辑:

std::vector<std::string> words;
std::string word;
while (cin>> word) {
    words.push_back(word);
}
std::向量词;
字符串字;
while(cin>>word){
单词。推回(单词);
}

我想把“.”作为一个不同的字符串,但我不能这样做。

这不是最优雅的解决方案,但应该可以

#include <iostream>
#include <vector>
#include <string>
#include <sstream>

using namespace std;

vector<string> split(string str, char delimiter)
{
    vector<string> internal;
    stringstream ss(str); 
    string tok;

    while(getline(ss, tok, delimiter))
    {
        internal.push_back(tok);
    }

    return internal;
}

int main(int argc, char **argv)
{

    string str = "My name is bob.I am fine";
    for(int i = 0; i < str.length(); i++)
    {
        if(str[i] == '.')
        {
            str.insert(i++," ");
            str.insert(++i," ");
        }
    }
    vector<string> sep = split(str, ' ');


    for(string t : sep)
        cout << t << endl;
}
#包括
#包括
#包括
#包括
使用名称空间std;
向量拆分(字符串str、字符分隔符)
{
向量内部;
stringstream ss(str);
弦托克;
while(getline(ss、tok、分隔符))
{
内部。推回(tok);
}
返回内部;
}
int main(int argc,字符**argv)
{
string str=“我叫鲍勃,我很好”;
对于(int i=0;icout看起来像是一个家庭作业问题。请看这里,这是一个很好的问题。对于SO来说,这是一个离题的问题。有关主题的内容列表,请参阅。