K&R练习1-20 – 需要一些澄清

我不完全理解以下练习的内容:

“编写一个程序详细信息,用空格中适当数量的空格替换输入中的选项卡到下一个制表位。假设一组固定的制表位,比如每n列。应该是变量还是符号参数?”

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

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

例如 :

 "hello\tworld" 

应成为:

 "hello world" 

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

或者通过指示标签停止的位置来澄清:

 hello world ^ ^ ^ ^ 

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

 hello world ^ ^ ^ ^ 

(标签仅替换为1个空格)

例如,如果你将一个tabstops的例子设置为n = 8,那么如果输入有1个字符,则选项卡将添加7个空格(带你到第9列)。 基本上,不要总是添加n个空格,添加空格的数量,将您带到特定n值的相应列。

例如:

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

“假定一组固定的制表位”基本上适用于非程序员。 我们习惯于一个总是在4,8的倍数上对齐的标签。 但是在文字处理器中,制表位是可配置的…所以第一个选项卡会在第6列对齐,第二个选项卡将转到30(例如对于中心文本),第三个选项卡会给出第70列(对于页码)或者其他的东西)。 他只是在这里指出我们谈论的是“程序员”tabstops,而不是文字处理器的tabstops。