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的效果是什么”这两个问题之后,开头的题目就很容易理解了。
希望可以帮到需要帮助的人哦~

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值