2014-11-15 2 views
0

У меня есть stringstream и должен выяснить, заканчивается ли оно определенным словом или нет. Как вы перебираете stringstream и выбираете последнюю строку?Найти последний токен в stringstream

Это школьное упражнение, в котором вам не разрешено использовать итераторы или любую другую магию.

ответ

0

Строковый поток похож на snprintf на C, поэтому вы фактически конвертируете его в строку с помощью метода .str(). Это базовый пример: Чтобы получить все миры, вам придется разделить на пространство и поместить его в массив или вектор или что-то еще.

#include <iostream> 
#include <string> 
#include <sstream> 
using std::cout; 
using std::endl; 
int main() 
{ 
     std::stringstream ss; 
     ss << "self" << ' ' << "world" << ' ' << "bacon"; 
     std::string str(ss.str()); 
     std::string buf; 

     for(unsigned i = 0; i < str.length(); i++) { 
       buf += str[i]; 
       if(str[i] == ' ') { 
         buf = ""; 
       } 
     } 
     cout << buf << endl; 
     return 0; 
} 
+0

Но как я могу выбрать последнее слово только из строки? Это только превращает stringstream в строку. –

+0

Вы можете использовать векторы? –

+0

К сожалению, нет. –

Смежные вопросы