#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