【发布时间】:2019-07-19 19:08:54
【问题描述】:
我有一个字符串数组和代表 printf 语句格式的字符串。数组中的字符串数量可以变化,格式字符串也可以变化(以匹配数组中的字符串数量)。 C中有没有办法用一个格式语句打印一个数组?我以为我可以使用可变参数函数来完成此任务,但似乎没有办法将数组作为 args 传递到 va_list。
char mystring[3][20] = {"one", "two", "three"};
char format[] = "%-25s%-30s%s\n";
【问题讨论】:
-
您可以编写自己的函数(希望超过 1 行)并在需要时在 1 行中调用它:
int n = stringsprintf(format, mystring); -
如果您不知道外部尺寸,并且没有标记/哨兵,则无法在 任何数量 的语句中执行此操作。
-
@pmg 你的意思是手动解析
f字符串? -
f是一个未使用的参数,该函数需要正好 3 个元素。 -
那为什么要这么麻烦?元素的数量是已知的。