2016-07-31 3 views
-4

У меня есть строкаИзвлечение строки из текста

My name is bob.I am fine 

Я хочу поставить каждое слово и «» в векторе строк Как это сделать с помощью getline в C++?

Edit:

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

Я хочу ". как другую строку, которую я не могу сделать.

+3

Похоже домашнее задание вопрос. Пожалуйста, посмотрите на [\ [what \]] (http://stackoverflow.com/help/mcve), здесь есть хороший вопрос – sjsam

+1

Это не по теме для SO. См. [Ask] список того, что по теме. –

ответ

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; 
} 
Смежные вопросы