你可能正在寻找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 */
Run Code Online (Sandbox Code Playgroud)
只是要添加,你实际上并不需要使用snprintf- 你可以使用普通的旧sprintf(没有size参数),但是更难以确保只有n个字符被写入缓冲区.GNU还有一个很好的功能,asprintf它将为您分配缓冲区.