Вы, вероятно, ищете snprintf .
int snprintf(char *str, size_t size, const char *format, ...);
Простой пример:
char buffer[100];
int value = 42;
int nchars = snprintf(buffer, 100, "The answer is %d", value);
printf("%s\n", buffer);
/* outputs: The answer is 42 */
У GNU тоже есть пример .
Просто добавьте, вам на самом деле не нужно использовать snprintf
- вы можете использовать старый sprintf
(без аргумента размера), но тогда будет сложнее обеспечить только n символы записываются в буфер. В GNU также есть хорошая функция, asprintf
, которая будет выделять вам буфер.