выделение подсрок из строки
От: Аноним  
Дата: 20.02.04 10:07
Оценка:
есть std::string, значения которой состоит из слов разделенных пробелом,
как попроще ее можно разделить на несколько строк, содержащие отдельные слова.
Можно каким-нибудь стримом и >> воспользоваться ?
Re: выделение подсрок из строки
От: Анатолий Широков СССР  
Дата: 20.02.04 10:19
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

А>есть std::string, значения которой состоит из слов разделенных пробелом,

А>как попроще ее можно разделить на несколько строк, содержащие отдельные слова.
А>Можно каким-нибудь стримом и >> воспользоваться ?

#include <string>
#include <sstream>
#include <iostream>
#include <algorithm>

int main()
{
   std::istringstream s("word1 word2 word3");
    
   std::istream_iterator<std::string> b(s);
   std::istream_iterator<std::string> e;
   std::ostream_iterator<std::string> o(std::cout, "\n");

   std::copy(b, e, o);
}
Re: выделение подсрок из строки
От: jazzer Россия Skype: enerjazzer
Дата: 20.02.04 10:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>есть std::string, значения которой состоит из слов разделенных пробелом,

А>как попроще ее можно разделить на несколько строк, содержащие отдельные слова.
А>Можно каким-нибудь стримом и >> воспользоваться ?

естественно :)

std::string str, word;
std::stringstream ss;
ss << str;



а потом просто зовешь ss >> word; пока не выгребешь все до конца.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: выделение подсрок из строки
От: mraleh Россия  
Дата: 20.02.04 10:43
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, Аноним, Вы писали:


А>>есть std::string, значения которой состоит из слов разделенных пробелом,

А>>как попроще ее можно разделить на несколько строк, содержащие отдельные слова.
А>>Можно каким-нибудь стримом и >> воспользоваться ?

J>естественно


J>
J>std::string str, word;
J>std::stringstream ss;
J>ss << str;
J>

J>а потом просто зовешь ss >> word; пока не выгребешь все до конца.
тогда уж так:
std::istringstream iss(str);
iss >> world1;
iss >> world2;
... << RSDN@Home 1.1.0 stable >>
Re[2]: выделение подсрок из строки
От: Аноним  
Дата: 20.02.04 10:44
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, Аноним, Вы писали:


А>>есть std::string, значения которой состоит из слов разделенных пробелом,

А>>как попроще ее можно разделить на несколько строк, содержащие отдельные слова.
А>>Можно каким-нибудь стримом и >> воспользоваться ?

J>естественно


J>
J>std::string str, word;
J>std::stringstream ss;
J>ss << str;
J>



J>а потом просто зовешь ss >> word; пока не выгребешь все до конца.

Ок, а stringstream кидаю исключения, когда пытаюсь прочесть больше, чем есть ?
Если нет, то можно ли заставить ?
Re[3]: выделение подсрок из строки
От: a-lex Россия  
Дата: 20.02.04 19:08
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ок, а stringstream кидаю исключения, когда пытаюсь прочесть больше, чем есть ?

А>Если нет, то можно ли заставить ?

Разрешить выбрасывание исключений для состояния eof:
stream.exceptions( stream.exceptions() | std::ios::eofbit );
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.