12

我不完全理解以下练习的要求:

“编写一个程序 detab,用适当数量的空格替换输入中的制表符,以便与下一个制表位间隔。假设一组固定的制表位,例如每 n 列。n 应该是变量还是符号参数?”

有人可以澄清粗体部分吗?

4

2 回答 2

22

本练习要求您通过添加正确数量的空格来模拟制表符的行为,以便输出仍然在制表位上对齐。

例如 :

"hello\tworld"

应该变成:

"hello   world"

(制表符已替换为三个空格),如果制表位是每 4 列(即 n = 4)。

或者通过指出制表位的位置来澄清:

hello   world
^   ^   ^   ^

如果制表位是每 3 列,那么你应该得到:

hello world
^  ^  ^  ^

(制表符仅替换为 1 个空格)

于 2011-08-24T15:41:05.557 回答
4

例如,如果您将制表位设置为 n=8,例如,如果输入有 1 个字符,则制表符将添加 7 个空格(将您带到第 9 列)。基本上,不要总是添加 n 个空格,添加将您带到适当列的空格数以对应您的特定 n 值。

例如:

         1
1234567890123456789
1------>
123---->
More words----->

“假设一组固定的制表位”基本上适用于非程序员。我们习惯了一个标签总是对齐 4,8 等的倍数。但是在文字处理器中,制表位是可配置的……所以第一个制表符将使您在第 6 列对齐,第二个制表符将转到 30(例如草率地居中文本),第三个制表符将为您提供第 70 列(用于页码或者其他的东西)。他只是在这里指定我们正在谈论“程序员”制表位,而不是文字处理器的制表位。

于 2011-08-24T15:41:12.973 回答