C语言基础要素(006):转义字符入门

news/2025/2/27 7:15:57

转义字符入门

转义字符,顾名思议就是转换字符的意义;一个转义字符在书写上是两个或多个字符,但只表示一个含义。‘\n’就是一个转义字符,当printf函数碰到它时,并没有直接输出字符’\‘与’n’,而是将它们看作一个换行标记,以使后续的输出打印在新的一行。C语言还包括以下几个常用的转义字符:

  • \t 横向制表符
  • \\ 反斜杠
  • \" 双引号

使用制表符格式化输出

横向制表符\t可以用于格式化文本输出。假如我们要输出一组表格样式的数据,方法之一是使用输出多个空格对齐,另一种方法就是使用'\t'。在下面的程序中,我们为表格的第1列与第2列应用两次\t以使列之间有更多的间距。

printf("Name\t\tAge\t\tE-Mail\n"
       "GLimix\t\t17\t\tmaster@glimix.com\n"
       "Alex\t\t18\t\talex@luna.com\n");

有一点要说明,\t的后间距与前导字符串长度有密切关系,这也使得它在对齐文本列时比较困难。下面的例子中,为了使内容对齐,在列与列之间使用的\t次数并不一样。事实上,使用空格或高级的格式化控制符会更加容易一些;但对于一些比较规则的数据,如第一个例子所示,'\t’相比输入较多空格更加好用。

// 使用同样数量的\t排版输出,但版式混乱。
printf("domain\te-mail\tseo\n"
       "glimix.com\zyf@glimix.cn\t10\n"
       "baidu.com\tbaidu@baidu.com\t100\n\n");

// 为了对齐输出,不同行文本间插入的制表符数量不一样。
printf("domain\t\te-mail\t\t\tseo\n"
       "glimix.com\tzyf@glimix.cn\t\t10\n"
       "baidu.com\tbaidu@baidu.com\t100\n\n");

在这里插入图片描述

使用反斜杠输出文件路径

考虑一些使用文件路径的场景,当我们需要在程序的运行日志、输出窗口、甚至简单的将一个文件路径输出到控制台,这时我们需要使用反斜杠转义符来进行正确的输出操作。

// 使用反斜杠输出文件路径
printf( "c\\windows\\program files\\readme.txt\n\n" );

如果我将路径中的\\ 换成\ 会出现什么问题?答案是你会得到一堆编译错误!在字符串输出过程中,当遇到\时,相当于告诉程序:我后面将跟随一到多个字符,请把它们解释为某个特别含义。比如说遇到n时请换行。现在第一个\与紧随其后的w,组合后形成了\w,但对C语言而言,这不是一个有效的转义字符,因此编译器会提示你发生了错误。

输出被引用的文本

当希望在printf中输出引号自身时,就需要使用转义\"转换字符。

// 使用双引号输出被引用的文本
printf("\"The quick brown fox jumps over the lazy dog\"\n");

程序运行结果如下:

在这里插入图片描述

练习

  1. 根据示例2,探索\t与前导或后导字符串之间的间距关系。
  2. 编写程序输出一大段引用的文本。

http://www.niftyadmin.cn/n/5869701.html

相关文章

SQL命令详解之操作数据库

操作数据库 SQL是用于管理和操作关系型数据库的标准语言。数据库操作是SQL的核心功能之一,主要用于创建、修改和删除数据库对象,如数据库、表、视图和索引等。以下是SQL中常见的数据库操作命令及其功能简介: 1. 查询数据库 查询所有的数据库…

X64 TF位和Single-step单步调试的研究

如果在执行指令时,处理器检测到 EFLAGS 寄存器中的 TF 标志被设置,则会生成单步调试异常。该异常属于陷阱类异常,因为异常是在指令执行之后生成的。处理器不会在设置 TF 标志的指令之后立即生成此异常。例如,如果使用 POPF 指令设…

一周学会Flask3 Python Web开发-Jinja2模板继承和include标签使用

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 不管是开发网站还是后台管理系统,我们页面里多多少少有公共的模块。比如博客网站,就有公共的头部&…

策略模式环境类的实现方式对比

文章目录 1、策略模式2、聚合策略类实现方式一3、聚合策略类实现方式二4、对比5、补充:ApplicationContextAware接口 1、策略模式 近期工作中,需要处理4.x和5.x两个版本的数据,所以自然想到的是策略模式,写一个抽象类&#xff0c…

DeepSeek-R1的一些影响

DeepSeek-R1火爆全球,肯定不仅仅是开源了一篇论文、一个模型那么简单,更多的是其带来的一些影响,这里简单聊聊。 跳出大模型固有开发范式 NLP&大模型技术发展历程大致如下: 规则方法统计学习方法深度学习方法深度学习预训练…

智慧城市招标进入“资质严审期”!谁主数字孪生技术话语权?

2025年1月,《全国统一大市场建设指引》明确要求招标项目需杜绝“逐利性执法”,技术资质审查更趋透明化。与此同时,住建部《危险性较大的分部分项工程专项施工方案严重缺陷清单》将数字孪生平台的数据治理能力纳入工程验收标准。在此背景下&am…

记录Liunx安装Jenkins时的Package ‘jenkins‘ has no installation candidate

1、确保是否安装了Java,如果没有,可通过以下命令进行安装: sudo apt update sudo apt install openjdk-21-jre2、安装Jenkins sudo apt update sudo apt install jenkins执行sudo apt install jenkins时,可能会出现 意思是&…

C语言-6.数据类型

目录 6.1数据类型6.1.1数据类型:C语言有哪些是基础数据类型,sizeof可以做什么6.1.2数据类型:除了int,还有多少整数类型6.1.3整数的内部表达式:整数是如何表达的,尤其是负数如何表达的6.1.4整数的范围:如何推断整数类型所能表达的范围,越界了会咋样6.1.5整数的格式化:如…