转义字符 \t

转义字符 \t

引言

在学习 c 程序设计语言第二版 时,无法理解习题 1.20 制表符终止位 的概念,查阅相关资料,发现是未理解转义字符 \t

制表符(TAB)

\t 制表符用于控制水平光标位置。 在终端默认为 8 个字符,制表符的特性总结为:将当前光标自动移动到,距离最近的下一个8n字符间隔之后,n 为正整数

TIP

8 个字符间隔是默认行为,可用 tabs n 设定 \t 的间距 ,字符间隔为单个空格宽度 ,若为中文等其他字符可能占据多个字符间隔

而之前的错误认知一直以为制表符,代替固定的字符间隔,例如 \t 表示 3 个字符间隔可以采用如下方式验证

shell 中输入如下指令

# 在出现 \t 的位置后利用 | 标识
echo "hello--\t|中aa\t|\t|\na\t|----\t|------\t|"

\t 后填充 | 字符模拟光标位置,输出结果为:

hello-- |中aa   |       |
a       |----   |------ |

结果可知 \t 会自动调整光标位置,使之在 8n 个字符间隔之后

也可以在 vscode 编辑其中验证此特性,输入一个或多个字符按一下 tab 键看光标会移动到哪?

注意编辑器中查看 tab 相关设置,确定使能了制表符特性

实际上在文档软件中也存在制表符概念,这里以 mac 自带的 pages 举例。 参看动图:

可以看到,在按下 tab 键后,光标的自动移动到,布局中设定的制表符距离之后。

通过修改距离,会更改光标的移动间距,读者可以尝试输入字符再按 tab 键,确认光标移动是否符合如下规则

光标只会相对每行起始位置,移动到最近 xn 间距后,x 表示设定的距离,n 为正整数

通过上述示例希望读者完全理解 \t 的作用。

此外推荐阅读 阮一峰回车和换行符 理解 \r\n

既然理解了制表符的功能制表符终止位的含义就清晰可见了

制表符终止位是指使用制表符键所对应的光标位置