Здравствуйте, jahr, Вы писали:
J>Здравствуйте, dosik, Вы писали:
D>>Быть может есть что-то более элегантное и быстрое?
J>Не знаю, насколько это элегантно-быстро, но есть такой способ, например:
J>J>using namespace std;
J>vector<char> buf;
J>// fill data
J>string res;
J>copy_if(buf.begin(), buf.end(), back_inserter(res), [](char c){ return isprint(c) || isspace(c);});
J>
Двух зайцев одним выстрелом ))) Интересно!
Единственное, что добавил бы:
res.reserve(buf.size());
на случай "сильно гигантского" буфера, чтобы не происходили переаллокации при копировании.