ifstream проход по строке

254
26 ноября 2016, 18:58

Просто есть строка string, в ней слова, разделенные пробелами. Как пройтись по этой строке, поочередно занося в буфер эти слова. То есть, сначала в буфер заносим первое слово, потом второе, и так до конца этой строки. Интересует, как сделать это на основе методов string, или другим наиболее рациональным способом.

Answer 1

Вот демонстрационная программа. В качестве "буфера" используется контейнер std::vector.

#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>
#include <vector>
#include <string>
int main() 
{
    char s[] = "one two three";
    std::cout << s << std::endl;
    std::vector<std::string> v;
    std::istringstream is( s );
    std::copy( std::istream_iterator<std::string>( is ),
               std::istream_iterator<std::string>(),
               std::back_inserter( v ) );

    for ( const auto &item : v ) std::cout << item << ' ';
    std::cout << std::endl;
    return 0;
}

Ее вывод на консоль

one two three
one two three 

Можете заменить объявление символьного массива на объявление объекта типа std::string.

std::string s( "one two three" );
READ ALSO
Как вставит строку внутрь другой строки при нахождении определенного символа

Как вставит строку внутрь другой строки при нахождении определенного символа

Есть символ С и строки S1, S2Перед каждым входжением символа С в строку S1 нужно вставить строку S2

336
Как написать парсер кода на C/C++, C# [закрыто]

Как написать парсер кода на C/C++, C# [закрыто]

Необходимо написать парсер кода для подсчёта метрики ЧепинаНепонятен алгоритм написания парсера

246
Ошибка error LNK2005 [закрыто]

Ошибка error LNK2005 [закрыто]

Написал программу которая берет данные с сайта и выводит их в DataGridView, все работает когда одна формаНо когда я добавил вторую форму, чтобы...

274
из ASCII в UTF-8 C++

из ASCII в UTF-8 C++

ЗдравствуйтеРаботаю с архивами: создание, добавление элементов и т

470