首页 > 其他分享 >入门c语言DAY7——转义字符

入门c语言DAY7——转义字符

时间:2024-07-10 20:01:11浏览次数:13  
标签:字符 入门 DAY7 单引号 打印 编译器 转义字符 printf

入门第七天(昨天就要发出来的,结果退出来的时候系统没给我保存....目前写过的最长的一篇文章了)

 

由例子引出转义字符,如图:

6e584287955a47809b3c0089d2f2719c.jpg

 可以看到将n前加上\后不但没有打印出\n,反而空了一行。

像\n这样的字符就叫转义字符。(当然也不是什么字符前加\都可以用作转义字符~

先来浅浅看一下转义字符常用表,再来一个个讲解一下。0f4605e2b16242d88f7494d9aca875e6.png

 422f9dcda6b64287b41e7bd4a99c8b14.png

 图片来源于@code-流苏【C语言入门——常用转义字符 - CSDN App】http://t.csdnimg.cn/uDOj7

(ps.解释顺序和图中不大一样噢,而且会更详细更全。)

 

(写在前面:其实这么学下来,我觉得转义字符就是钻牛角尖时发明出来的,比如打印字符,偏偏打印单引号和双引号(・∀・)......)

(1)\?:书写连续多个问号时使用,防止他们被解析成三字母词。早期在c语言编译器中有三字母词(现在基本上没有了),比如有些早期编译器会把??)编译为],把??(编译为[

所以在如下例子中:

printf("%s\n","(are you ok??)")

有的编译器可能会打印为(are you ok]

所以这个时候可以利用转义字符来处理。

改为这样:printf("%s\n","(are you ok\?\?)")就不会被识别为三字母词,也就再也不会出问题~

 

(2)\':用于表示字符常量'

当我要打印一个字符常量时,一般会使用如下格式:printf("%c\n",'?')(?代表一个字符,需要用单引号'引起来。)

但我要打印一个单引号时,既不能直接printf("%c\n",'''),系统会因为直接把前两个单引号看作一对而单独出第三个单引号,从而无法编译,就会报错,如图。02c35a0b73f64fb39c1107cbef8a8ac9.jpg

面对此种情况,就需要使用转义字符\'将中间的单引号单独隔开,like this~

99caad1345ee44fabef0afe7dbb81081.jpg

 这样程序就会把第二个单引号看做一个单独的单引号,就不会出问题了。

 

(3)\":用于表示一个字符串内部的双引号,与单引号的转义字符同理~

 

(4)\\:用于表示一个反斜杠,防止它被解释为一个转义序列符。其实感觉也和单引号与双引号转义字符的来源差不多。。

比如我想打印如下代码:abcd\0ef,而且在这里我不希望\0被当做转义字符,而是作为内容的一部分来打印出来。

但我不能直接这样:printf("abcd\0ef")

否则\0就会直接被程序认定为转义字符,从而造成如下情况:

be97d7143d7846da8d303f55d8bc549e.jpg

 程序就会直接将\0视为转义字符从而终止打印。

如果我们想要让他完整的打印出所有内容,就需要用到\\这一转义字符,\\就是让程序知道\就是普通的斜杠,而非其他转义字符中的斜杠。

所以我们可以这样来得到正确答案:

c12bf4822de74a4aad137c72f16a0951.jpg

 在\0前多加一个\即可~

再比如当我想打印一个路径:c:\test\test.c

也不能直接printf,因为\t也是一种转义字符,所以需要在\t前再加一个\,也就是printf("c:\\test\\test.c")即可。

这就是转义字符\\的运用。

 

(5)\a:警告字符,蜂鸣

。。。不一定能演示出来噢,当打印一个\a时就会触发电脑上的蜂鸣,也就是警告音。仅此而已(手机上的C compiler编译器试了一下,可以发出蜂鸣噢~)

 

(6)\b:退格符,将光标向左移动一个位置,或者在需要时删除光标前的字符。(说实话感觉倒是没怎么用过。。)

(7)\f:进纸符,也就是换页得意思,将光标当前位置移到下一页的开头。现在也不大常用了。

(8)\n:换行,就是把两段文字分成两行,如图。这个倒挺常用。

29a18d17a7f7474c9a9b713960165e46.jpg

 (9)\r :回车,实际上就是敲键盘上回车键所对应的代码....我也想不出来这有什么能讲的...

 (10)\t:水平制表符,对应键盘上的Tab键,按一下回往后跳出一大段,这就是他的作用。

(11)\v:垂直制表符......让\v后面的字符从下一行开始输出,且开始的列数为\v前一个字符所在列后面一列。

(12)\ddd:ddd表示1~3个八进制的数字。如:\130,打印出来结果是X,如图:

2ac42a649ed3489db1a82a87d3427150.jpg

 八进制的130换成十进制为88,而88在ASCII编码库中代表的是X

(13)\xdd:dd表示2个十六进制数字。如:\x30,打印出来是0,如图:

3b1425e7302a4005949d637abb642f26.jpg

 

这里是从网上找到一个ASCII表(部分)

9bb486c5d5ca4cde8745a5a09a826466.jpg

 注意一下,只有转化后的十进制在0-127之间才有效~

 

今天的学习内容就到这啦~

 

 

 

 

 

标签:字符,入门,DAY7,单引号,打印,编译器,转义字符,printf
From: https://blog.csdn.net/2401_85895002/article/details/140237486

相关文章

  • 量化交易入门:如何在QMT中配置Python环境,安装第三方依赖包
    哈喽,大家好,我是木头左!引言QMT,作为量化交易系统中的佼佼者,以其强大的功能和灵活的操作性,受到了广大投资者的青睐。但是,对于很多新手来说,如何在QMT中配置Python环境,安装第三方依赖包,却是一个让人头疼的问题。本文将从零开始,手把手教你如何在QMT中配置Python环境,安装第三方依赖包......
  • R语言入门
    #新手上路a<-1:10aAcor(iris[,1:4])Cor(iris[,1:4])#获取帮助?median#等价于help("median"),查看中位数函数的帮助文档??median#等价于help.serach("median")搜索包含median的帮助信息help("runExample")help("runExample",package="shin......
  • 学习AI大模型,入门小白必看!应用开发极简入门PDF来了!
    人工智能大潮已来,不加入就可能被淘汰。就好像现在职场里谁不会用PPT和excel一样,基本上你见不到。而大模型是人工智能代表,潜力与使用方式有关。使用好大模型可提高效率,让人获得更好的待遇和更多机会。你发现PPT和excel用的好的PPT一看就惊艳,excel用的特别熟练,你这个数据分......
  • 【NOI】C++算法设计入门之贪心
    文章目录前言一、概念1.导入2.概念2.1贪心算法的核心思想2.2贪心算法的步骤2.3贪心算法的应用场景二、例题讲解问题:1372.活动选择问题:1456.淘淘捡西瓜问题:1551-任务调度问题:1561.买木头三、总结五、感谢前言贪心算法,如同成语"得陇望蜀"所描述的那样,总是......
  • 【AI绘画】什么是Stable Diffusion?保姆级 Stable Diffusion 入门教程
    一、什么是StableDiffusion?StableDiffusion是一种基于深度学习的文本到图像生成模型,它能够根据用户提供的文本描述生成相应的高质量图像。支持多种任务如图像修复、绘制、文本到图像等。在当下,StableDiffusion是最为流行和受欢迎之一的AI绘画工具。二、StableDiff......
  • Scala入门
    ScalaScala特点:和Java无缝整合,满足各自语法基础上调用Java库;类型推断,类似于Golang,Scala通过val声明常量,通过var声明变量。支持并行和分布式;高阶函数编程,可以理解为面向对象编程,但是函数可以作为对象并当作参数传入。数据类型Null:代表空值,是AnyRef的子类;No......
  • 【C语言学习】3.字符串+转义字符+注释
    字符串由双引号引起来的一串字符称为字符串字面值(StringLiteral),或者简称字符串。注:字符串以\0为结束标志,不算作字符串内容,若未输入,编译器将隐藏添加\0。\0为字符串的结束标志的证明:法一:chararr1[]="abc";//双引号为字符串chararr2[]={'a','b','c'};//单引号......
  • 入门PHP就来我这(高级)20 ~ 事务处理
    有胆量你就来跟着路老师卷起来! --纯干货,技术知识分享路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。 接着上篇我们来看下PDO数据库的事务处理。1PDO中的事务处理1.1事务相关概念事务(transaction)是由查询和更新语句的序列组成。用beg......
  • SpringBoot 入门
    步骤1:创建maven工程创建一个空Maven工程,如下:步骤2:pom.xml文件中添加SpringBoot依赖需要添加SpringBoot项目父级依赖和SpringBoot项目相关依赖,pom.xml内容如下:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"......
  • Unity入门之重要组件和API(4) : Input
    前言Input类主要处理用户输入设备相关操作;输入设备包括鼠标、键盘、触屏、手柄、陀螺仪(重力感应)。1.鼠标1.1鼠标在屏幕的位置print(Input.mousePosition);1.2检测鼠标输入0-左键1-右键2-中键if(Input.GetMouseButtonDown(0)){ print("鼠标按下");}if(Input......