Вы хотите именно самостоятельно реализовать или задача не использовать стандартную библиотеку?
Если самостоятельно, то для начала изучите
https://en.cppreference.com/w/cpp/header/cstdarg
и все что связано с функциями с переменным числом аргументов.
Если второе то, это значит, что вы должны использовать функции предоставляемые ОС. Для Windows это WinAPI, для Линукс - POSIX.
В винде уже есть готовые варианты - функции семейства StringCbPrintf.
В Линукс ... ну тут все равно от стандартной библиотеки ни куда не уйти :), т.к. это часть ОС и POSIX.