C中的字符串连接

Rit*_*ose 3 c string const

如果我想构造一个const char *多个基本类型的参数,有没有办法用类似的方法构建字符串printf

Nic*_*sta 8

你可能正在寻找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)

GNU也有一个例子.

只是要添加,你实际上并不需要使用snprintf- 你可以使用普通的旧sprintf(没有size参数),但是更难以确保只有n个字符被写入缓冲区.GNU还有一个很好的功能,asprintf它将为您分配缓冲区.