从文本中提取字符串

时间:2016-07-31 01:45:20

标签: c++ c++11 stl programming-languages

我有一个字符串

My name is bob.I am fine

我想把每个单词和'。'在字符串向量中 如何在c ++中使用getline做到这一点?

修改

std::vector<std::string> words;
std::string word;
while (cin>> word) {
    words.push_back(word);
}

我想要&#39;。&#39;作为一个我无法做的不同的字符串。

1 个答案:

答案 0 :(得分:0)

不是最优雅的解决方案,但这应该有效

#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;
}