如何在这个字符串中打印

时间:2012-10-15 18:30:05

标签: c

我有一个这样的字符串。

char array1[250] = {"Array Values are %d,%d,%d,%d"};

我有四个这样的整数,

int var1 = 25,var2 = 78, var3 = -189,var4 = -200;

我想在array1中将var1打印到var4。我怎么做?我已经在array1中拥有了格式说明符。

3 个答案:

答案 0 :(得分:2)

不要将格式说明符放在数组中。只是做

char array1[128]; // enough space for four ints and the string

sprintf(array1, "Array Values are %d,%d,%d,%d", var1, var2, var3, var4);

答案 1 :(得分:0)

只需使用sprintf

即可

但是创建另一个输出数组,否则你会有未定义的行为,因为你覆盖了格式字符串。

char output[126];

sprintf(output, array1, var1, var2, var3, var4);

答案 2 :(得分:0)

sprintf(array1, array1, var1, var2, var3, var4);

是吗?但是我不确定C会同时对同一个字符串的读取和写入做出怎样的反应,强烈建议你先将它复制到一个单独的变量中。

编辑:Per Roddy的评论我只是说做你要求做的事情。格式说明符应该与数据分开,我肯定你正在使用它的应用程序可以节省25个字节以进行良好的设计。