我可以像printf一样存储格式化的字符串吗?

时间:2013-06-06 18:24:30

标签: c string string-formatting

在C语言中我是否可以像printf那样格式化字符串,而是将其存储在变量中?我试图将它用于系统调用,因此我可以在调用中包含一个变量。

1 个答案:

答案 0 :(得分:4)

您可以在使用之前使用sprintf(或C99 / C11中的snprintf)格式化字符串。

int sprintf(char *str, const char *format, ...);
int snprintf(char *str, size_t size, const char *format, ...); 

示例:

 // Use the value of an integer 'n' as argument in 'perror' (C99).

#include <limits.h>
#include <stdio.h>

char argument[sizeof(int) * CHAR_BIT + 1];
snprintf(argument, sizeof argument, "%d", n);
perror(argument);