0
我想知道这是否是正确的方式concatenate
和NUL
终止包括宽度的字符串。串联字符串和snprintf在c
#define FOO "foo"
const char *bar = "bar";
int n = 10;
float f = 10.2;
char *s;
int l;
l = snprintf (NULL, 0, "%-6s %-10s %4d %4f",FOO, bar, n, f);
s = malloc (l + 4); // should it be the number of formats tags?
if (s == null) return 1;
sprintf (s, "%-6s %-10s %4d %4f", FOO, bar, n, f);
为了维护目的,定义一个由`snprintf`和`sprintf`使用的格式字符串可能是个好主意。如果它在一个地方改变了,而不是另一个地方,它真的很糟糕! – 2010-12-08 03:23:19
这听起来像是一个好主意,是否可以发布一个示例代码参考这个?谢谢 – Lucas 2010-12-08 03:27:21