在C语言中我是否可以像printf
那样格式化字符串,而是将其存储在变量中?我试图将它用于系统调用,因此我可以在调用中包含一个变量。
答案 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);