像在fprintf语法中一样定义字符串

时间:2017-01-02 09:43:24

标签: c string

如何在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[]
   // ...
}

1 个答案:

答案 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, ...);