И это всё МОЁ

Иногда (прямо сейчас) приходится обрабатыавть строки на C.
Меня коробит от громоздкости операций выделения памяти, конкатенации и самое главное это snprintf с проблемой размера буфера под конечную строку, гигантское поле для выращивания вских мемориликов по невнимательности.


К примеру, размеры mult1_str, mult2_str и equal_str известны, нужно выделить память под всю строку:

snprintf(
buf,
buflen,
"%s miltilple %s equals %s",
mult1_str,
mult2_str,
equal_str
);

варианты:

- махнуть шашкой и сделать килобайт на стеке ( ((( )

- ничем не размахивать и посчитать руками. (еще хуже)

- написать функцию которая будет вычислять длину «%s miltilple %s equals %s» без символов подстановки (уже лучше)

- отказаться от snprintf и собирать строку пачкой конкатенаций с аллокациями памяти и прочим...



А как делаешь ты?








 ,