#define SIZE 9
int number=5;
char letters[SIZE]; /* this wont be null-terminated */
...
char fmt_string[20];
sprintf(fmt_string, "%%d %%%ds", SIZE);
/* fmt_string = "%d %9d"... or it should be */
printf(fmt_string, number, letters);
有没有更好的方法来做到这一点?printf字符串,可变长度项目
您似乎在构建一个格式字符串。但是你应该将'sprintf'返回的字符串赋给'fmt_string','fmt_string'不应该放在参数列表中。 – pavium 2011-05-09 03:41:16
有没有什么特别的原因让你说'letters'不会以null结尾? – 2011-05-09 03:53:47
@AndrewKeeton这是针对一个大型数据集的搜索问题,我无法承受空间容纳空字符。 – 2014-10-11 19:46:17