0


tab stop(制表符)是什么?

在《The C Programming Language》中有一道题是这样的:

Exercise 1-20. Write a program detab that replaces tabs in the input with the proper number of blanks to space to the next tab stop. Assume a fixed set of tab stops, say every n columns. Should n be a variable or a symbolic parameter?

这题中出现的

tab stop

让人挺搞不懂的,按照

tab

来理解的话,这题就很奇怪了。
经过查找研究之后,发现

tab stop

是用于定位输入Tab之后光标所在的位置的术语(也就可以理解成tab符号的末尾,但是需要注意的是

tab stop

是一个名词,中文名称为制表符),就是Word或者Pages文本输入界面顶端的“尺子”上的“小卡标”,如下图Pages中的水平方向小三角(这个小三角是可以改的,样式不同,定位不同,默认是左定位,其他样式这里不展开来说,故这里可能会显示的与图中不一样):
按下Tab键前
按下Tab键后
可以看到按下Tab键后,光标移到了下一个小三角的位置。
这时候我们再试试看按删除(Backspace)键,发现直接变回了第一张图。这也说明

tab stop

是定位光标的符号,而不是单纯的用tab键代替了四个空格(默认情况下是4个,实际上在软件中制表符的值是可以调整的),是按下tab键就跳到下一个tab stop。

我们已经知道什么是

tab stop

了,那么这时候还有一个问题就是,一堆

tab stop

表示什么呢?
做个小实验,仔细看manpage这个单词的开头:
请添加图片描述
按下Tab键:
请添加图片描述
可以看到光标将单词向右移到了最近的制表符。
也就是说,如果调整好每个制表符之间的距离,那么制表符就可以将文字弄成列表一样的样子(所以tab stop才被翻译成制表符,不然的话tab还有标签、拉环等意思,没办法翻译成制表符),效果如下:
请添加图片描述
是不是有表格的感觉了。题目中的

columns

指的就是这样的一列一列。

解决完“什么是tab stop”和“tab stop的效果是什么”这两个问题之后,开头的题目就很容易理解了。
希望可以帮到需要帮助的人哦~

标签: c语言

本文转载自: https://blog.csdn.net/qq_33919450/article/details/119022248
版权归原作者 zhonguncle 所有, 如有侵权,请联系我们删除。

“tab stop(制表符)是什么?”的评论:

还没有评论