【发布时间】:2011-08-24 15:34:57
【问题描述】:
我不完全理解以下练习的要求:
“编写一个程序 detab,用适当数量的空格替换输入中的制表符到下一个制表位的空间。假设有一组固定的制表位,比如每 n 列。是变量还是符号参数?”
有人可以澄清一下粗体部分吗?
【问题讨论】:
-
为
n8 做一个程序的第一个版本。然后为n4 做另一个。而不是在命令行或其他一些配置方法上指定的n的最后一个版本。
我不完全理解以下练习的要求:
“编写一个程序 detab,用适当数量的空格替换输入中的制表符到下一个制表位的空间。假设有一组固定的制表位,比如每 n 列。是变量还是符号参数?”
有人可以澄清一下粗体部分吗?
【问题讨论】:
n 8 做一个程序的第一个版本。然后为n 4 做另一个。而不是在命令行或其他一些配置方法上指定的n 的最后一个版本。
本练习要求您通过添加正确数量的空格来模拟制表符的行为,以便输出仍然在制表位上对齐。
例如:
"hello\tworld"
应该变成:
"hello world"
(制表符已替换为三个空格),如果制表位是每 4 列(即 n = 4)。
或者通过指出制表位的位置来澄清:
hello world
^ ^ ^ ^
如果制表位是每 3 列,那么你应该得到:
hello world
^ ^ ^ ^
(制表符只替换为1个空格)
【讨论】:
_______^_______^_______^__...
如果您举一个将制表位设置为 n=8 的示例,例如,如果输入有 1 个字符,则制表符将添加 7 个空格(将您带到第 9 列)。基本上,不要总是添加 n 个空格,添加将您带到适当列的空格数以对应您的特定 n 值。
例如:
1
1234567890123456789
1------>
123---->
More words----->
“假设一组固定的制表位”基本上适用于非程序员。我们习惯了一个标签总是对齐 4,8 等的倍数。但是在文字处理器中,制表位是可配置的……所以第一个制表符将使您在第 6 列上对齐,第二个制表符将转到 30(例如草率地居中文本),第三个制表符将为您提供第 70 列(用于页码或者其他的东西)。他只是在这里指定我们谈论的是“程序员”制表位,而不是文字处理器的制表位。
【讨论】: