【问题标题】:Kernighan and Ritchie Exercise 5-11 is unclearKernighan 和 Ritchie 练习 5-11 不清楚
【发布时间】:2015-01-23 19:41:15
【问题描述】:

这是练习 5-11: 将程序 entab 和 detab(在第 1 章中作为练习编写)修改为 接受一个制表位列表作为参数。如果没有参数,请使用默认选项卡设置。

entab 被描述为

用最少的制表符/空格数替换空格字符串以实现相同的间距。 应优先使用选项卡以让字符数组将“选项卡”存储为一个索引 而不是多个空格。

究竟什么是“制表位”,我们如何接受制表位的列表?我很困惑。

【问题讨论】:

  • 制表位是当您点击制表符(或打印 \t)时“光标停止的下一个位置”。它允许您在列中对齐文本 - 而不是计算字符和空格。这对于比例字体更为重要,但我相信这个练习适用于单空间字体。
  • 要获得“接受停靠点列表”的帮助,您需要出示您的代码。很可能您将传递一个 int[] 数组和作为另一个 int 的停靠点数
  • 我在理解这个问题时遇到了问题,所以还没有编写代码。现在我相信程序希望用户以 int[] 数组的形式输入止损。谢谢@Floris!
  • 在过去编写 K&R 时,打字机有 tab stops,它配置每次按下 TAB 键时纸张向左移动的距离。所以tab stops的列表就是单调递增的列号列表,比如6,16,32,40,72,80
  • 谢谢,@markgz。有些东西像我这样的年轻计时器不会从书本中得到。

标签: c kernighan-and-ritchie


【解决方案1】:

当您点击tab 时,您将前往下一个制表位。例如,许多文本编辑器在所有 8 的倍数(8、16、24、32、40 等)处都有制表位,因此如果您在第 11 列(例如)并点击制表符,则转到第 16 列。如果您重新进入第 14 列并点击制表符,您也会转到第 16 列。因此,制表符并不总是值得固定数量的空格,但需要很多空格才能进入下一个制表位。

【讨论】:

  • 谢谢。这本书从不超过制表位。你的用户名适合:P
  • @ChrisZhang 所以你的'g'或'o'键坏了,你不能用谷歌搜索吗?还有linux.die.net/man/1/tabs
  • @JimBalter 再说一次,我差点忘了您在此页面上的此评论上方 3 英寸处提及 google,因此感谢您再次提及。 linux 页面有所帮助,但我认为我可以在这里得到更多经验丰富的读者更清晰、更通俗、更相关的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多