我有一个这样的字符串。
char array1[250] = {"Array Values are %d,%d,%d,%d"};
我有四个这样的整数,
int var1 = 25,var2 = 78, var3 = -189,var4 = -200;
我想在array1中将var1打印到var4。我怎么做?我已经在array1中拥有了格式说明符。
答案 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个字节以进行良好的设计。