我有一个指向整数数组的指针,以及数组的长度,如下:
unsigned int length = 3;
int *array; // Assume the array has 3 initialized elements
我还有一个字符串和一个缓冲区(假设它足够大),需要这样放入sprintf中:
char buffer[128];
const char *pattern = "(%d, %d, %d)\n";
假设
pattern
中只有"%d"和其他字符,但可以是任何形式(例如"Test %d: %d"或"%d %d"),并且array
的长度始终与"%d"的数量相同。由于数组的长度可以是任意值,有没有办法做到在不枚举
array
元素的情况下执行sprintf(buffer,pattern,&array[0],&array[1],&array[2])
?比如说像sprintf(buffer,pattern,array)
这样的方式。我可以编写任意数量的辅助函数。我考虑模拟一个va_list,但这似乎是不好的做法,因为它会限制程序在特定的编译器上运行。
s[0]=0;
是必要的吗? - imreal