如何在C中构建包含参数的字符串?有没有类似于fprintf
语法的方法呢?例如,这里有点testProg.c
:
int main(int argc, char *argv[]) {
printf("You are running %s program.\n", argv[0]);
// It will print: "You are running testProg.c program.\n"
char myString[];
// I want the string printed by printf to be saved inside myString[]
// ...
}
答案 0 :(得分:7)
您可以使用snprintf
。首先确定适合内容的myString
缓冲区大小。然后使用snprintf
填写内容。
char myString[100] = "";
snprintf( myString, sizeof(myString), "You are running %s program.", argv[0] );
snprintf
类似于fprintf
(这是printf
的一般版本,输出流为stdout
),因此应用了所有控制格式 - 详细信息可以找到在标准中:
7.21.6.5 snprintf函数
#include <stdio.h>
int snprintf(char * restrict s, size_t n,
const char * restrict format, ...);