【问题标题】:In C is there a way to print an array of unknown size with a single formatted print statement?在 C 中,有没有办法用一个格式化的打印语句打印一个未知大小的数组?
【发布时间】: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 个元素。
  • 那为什么要这么麻烦?元素的数量是已知的。

标签: c arrays


【解决方案1】:

【讨论】:

  • 哇。我不知道你会因为说“不”而获得这么多赞成票。
  • @machine_1 如果答案有用,您可以。
猜你喜欢
  • 1970-01-01
  • 2019-07-23
  • 2019-08-27
  • 2021-05-03
  • 2015-06-28
  • 1970-01-01
  • 2015-02-25
  • 2022-07-23
  • 1970-01-01
相关资源
最近更新 更多