Еще раз про вектор
От: Аноним  
Дата: 18.10.04 14:26
Оценка:
Имеется строка, где слова разделены запятыми, как мне найти в этой строке слова и раскидать их по string-м, и еще эти стринги надо в вектор пихнуть
Re: Еще раз про вектор
От: sadomovalex Россия http://sadomovalex.blogspot.com
Дата: 18.10.04 14:30
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Имеется строка, где слова разделены запятыми, как мне найти в этой строке слова и раскидать их по string-м, и еще эти стринги надо в вектор пихнуть


boost::tokenizer
"Что не завершено, не сделано вовсе" Гаусс
Re: Еще раз про вектор
От: Losar Россия  
Дата: 18.10.04 14:46
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Имеется строка, где слова разделены запятыми, как мне найти в этой строке слова и раскидать их по string-м, и еще эти стринги надо в вектор пихнуть


#include <iostream>
#include <vector>

int main()
{
std::string str = "11,22,33,443,5ff5,66", str_parser;
std::vector<std::string> m_Vector;
unsigned j = 0, i = 0;

for (; i < str.length(); i++)
if (str[i] == ',')
{
str_parser = str.substr(j, i — j);
j = i + 1;
m_Vector.push_back(str_parser);
}
//И если строка не заканчивается запятой, то
str_parser = str_parser = str.substr(j, i — j);
m_Vector.push_back(str_parser);
}
Re: Еще раз про вектор
От: Анатолий Широков СССР  
Дата: 18.10.04 14:48
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Имеется строка, где слова разделены запятыми, как мне найти в этой строке слова и раскидать их по string-м, и еще эти стринги надо в вектор пихнуть



std::string::iterator bi = input.begin();
std::string::iterator ei = input.end();
std::string::iterator ti = ei;
std::vector<std::string> arr;

while( bi != ei )
{
    ti = std::find(bi, ei, ',');
    arr.push_back(std::string(bi, ti));
    if( (bi = ti) != ei )
       std::advance(bi, 1);
}
Re: Еще раз про вектор
От: Инженер  
Дата: 18.10.04 14:54
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

А>Имеется строка, где слова разделены запятыми, как мне найти в этой строке слова и раскидать их по string-м, и еще эти стринги надо в вектор пихнуть


    std::stringstream stm;
    stm << "1,2,3,4,5,6,7";
    std::string temp;
    std::vector<std::string> arr;
    while(std::getline(stm, temp, ','))
    {
        arr.push_back(temp);
    }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.