metaclass: (Default)
[personal profile] metaclass
Кошерен ли такой код для разбиения строки, разделенной запятыми на отдельные строки: http://ideone.com/rhNXq ?

PS: strtok не признаю по идеологическим причинам - она меняет анализируемую строку, что меня крайне пугает, хотя в моем конкретном случае это не мешает.

PPS: безотносительно к strtok, в функции было минимум две ошибки - отсутствие проверки на выход за пределы буфера и попадание eol в последнюю строку (девайсина, с которой приходит строка, терминирует ее \r)

Date: 2012-04-23 03:09 am (UTC)
From: [identity profile] esil0x.livejournal.com
Вы всё продолжаете себя мучать? Первый и третий пункт рецепта как и в прошлом посте, меняется только второй:

#include <boost/tokenizer.hpp>
#include <iostream>

const std::string str("aaaa,ssdsd asdsd,ffffff");

int main() {
    typedef boost::tokenizer< boost::char_separator<char> > splitter;

    boost::char_separator<char> sep(",");
    splitter spl(str, sep);

    for (splitter::const_iterator it = spl.begin(), end = spl.end(); it != end; ++it) {
        std::cout << *it << "\n";
    }
}

Date: 2012-04-23 06:39 am (UTC)
From: [identity profile] metaclass.livejournal.com
Да, надо будет С++ тоже попробовать, на следующей потусторонней задаче.

Date: 2012-04-23 06:51 am (UTC)
From: [identity profile] berezovsky.livejournal.com
главное опиатные наркотики не пробовать

Date: 2012-04-23 08:54 am (UTC)
From: [identity profile] nicka-startcev.livejournal.com
только не забыть скорость замерить.
Плюсявые потоки заметно медленнее нормального ввода/вывода.
В опенскаде это увеличивает время рендеринга почти вдвое.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 22nd, 2025 05:53 pm
Powered by Dreamwidth Studios