Форматирование строки на несколько строк определенной длины в C / C ++

Есть ли общая библиотека C / C ++ (или общий метод) для взятия строки (строк) входного текста и разделения слов в отдельные строки. Каждая строка вывода имеет максимальную ширину, а слова не разбиваются по строкам. Свертывание или сохранение пробелов - это нормально. Пунктуация должна быть сохранена. Предпочтительна небольшая и компактная библиотека.

Я мог бы легко провести день, собирая что-то, что работает, но хотел бы знать, есть ли что-то общее, поэтому я не изобретаю колесо заново. Бонусные баллы, если строка ввода может содержать спецификатор формата, чтобы указать уровень отступа для строк вывода.

Пример ввода: Голень солонина, мясо индейки, курица, свиная отбивная, оленина, стейк из говядины, стейк из коровьей колбасы. Хвост короткая филейная часть плеча, окорок голени. Мясной рулет с шариком на кончике языка хвоста, брезаола, короткая филейная часть с тремя кончиками, жирная спина, свиная вырезка, вырезка, филе, бильтонг. short loin andouille.

Пример вывода (целевая ширина = 60)

123456789012345678901234567890123456789012345678901234567890   Line added to show where 60 is
Shankle drumstick corned beef, chuck turkey chicken pork
chop venison beef strip steak cow sausage. Tail short loin
shoulder ball tip, jowl drumstick rump. Tail tongue ball tip
meatloaf, bresaola short loin tri-tip fatback pork loin
sirloin shank flank biltong. Venison short loin andouille.
5
задан Martin York 1 August 2011 в 06:29
поделиться