计算机萌新的成长历程——转义字符蒙奇索隆的技术博客

朋友们,大家好!今天我们又见面啦!

转义字符——字面意思就是转变含义的字符,这里我的理解就是一个字符被转变成了其他的含义,就好比蔬菜面条,原本是蔬菜的,结果把它打成汁后和面粉和在一起就变成了面条。那问题来了,这个字符是被什么东西给改变含义的呢?我们接着往下看。

(注:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束的标志,不算作字符串内容。)

这里就有说\0是一个转义字符,那它是把什么东西给转义了呢?这里我们可以打印字符来寻求答案。

看到系统提示的错误有点头大呀。不过没关系,我们按照系统提示的错误来一一分析一下。

首先看第8行提示的错误有:缺少右引导、常量中有换行符、从int到char截断。

这里就有点意思了,这里我查找了从int到char截断这个问题的解决方案,我发现别人有提到一个问题,有些字符看起来是一个字符,其实他是字符串,无法赋值给char

然后我们再来看第9行的错误提示:应输入“;”、在标识符printf前缺少“;”

我们再来看第8的代码,不知道大家有没有注意到这里\'它发生了点变化,第7行正常的单引号是红色,这里它却变成了紫色,这里会不会是它出问题了呢?我们接着在它后面再加一个单引号看看

代码正常运行,这里0是正常打印,但是"\"打印的却不是我们需要的"\",而是原先作为表示字符字面量的单引号给打印出来了,这里的单引号变成了字符,所以我们不妨大胆推测一下,这里是不是因为"\"将单引号的原先的作用给改变了,由表示字符字面量的符号转变成了一个字符呢?这里我们做个测设,看看能不能通过加上一个"\"来将"\"转变为字符,如下图所示:

这里我们可以看到,确实如我们猜想的一样,这里我们可以得出结论"\0"之所以是一个转义字符就是因为"\"将"0"原本的性质转变成了一个字符串的结束标志,“\”在其中的作用就是作为转义工具,这里我们就把“\”称为转义字符的转义序列符。那下面问题来了,究竟有哪些转义字符呢?这里鹏哥给我们列举出了一系列的转义字符,如下图所示:

这些转义字符大家可以记忆一下,以后可能会经常用到。这里我解释一下几个字符的意思:

“\?”——在老版本的VS中有一个符号叫三字母词,比如“??+)”计算机在遇到这三个字符时会将他们解析成一个字符,导致将这三个字符分别打印出来,这里我们想将其一一打印的话就需要添加转义序列符,也就是像这样“\?\?)”这样就能正常打印了;

“\ddd”——这里的意思是一个转义符加1-3个数字时表示的是1-3个八进制数字(0~7),这里我们下面会重点介绍一下;

“\xdd”——这里的意思是一个转义符加一个x再加2个数字表示的是2个十六进制(0~9与A~F)的数字。

下面我们通过一组代码来解释“\ddd”与“\xdd”,代码如下:

打印结果如下图所示:

在说明这个结果之前,首先我们先要知道八进制和十六进制如何转化为十进制,转化过程如下:

\123——八进制123转化为十进制=1×8^2+2×8^1+3×8^0=64+16+3=83;(八进制的数值范围是0~7)

\x45——十六进制45转化为十进制=4×16^1+5×16^0=64+5=69;(十六进制的数值范围是数字0~9+字母A~F(a~f))

现在大家应该就能理解为什么数值打印出来是83和18了吧,不过问题是为什么打印字符时出现的是“S”、正方形而不是‘\123’与‘\x12’?要解释这个问题前,我们要先介绍一下ASCII码值这个知识点。

什么是ASCII码值?

这里简单的理解ASCII码值就是一套标准,一套将数字、字母、字符(符号)用2进制数值表示的标准。

(注:这里的字符代表的是各种各样的符号如:“♠♥♦♣”这样的符号,在C语言中字符是数字、字母以及符号的统称,这里为了防止大家混淆,下面我将统称的字符字体颜色标红)

下面我们来看一下ASCII码表:

看到这张图可能就有朋友有疑问了,不是说ASCII码值是来将数字、字母、字符(符号)用2进制数值表示的标准吗?为什么这里是10进制的数值呢?对于这个问题,我的个人理解是,计算机是不能识别这里数字、字母、字符(符号)的,它能识别的内容只有2进制,但是这些数字、字母、字符(符号)都不是二进制呀,所以为了表示这些字符,咱们的前辈们就给这些数字、字母、字符(符号)用10进制的数为它们编上了自己的编号,这个就是ASCII码值,这个编号并不是无穷大的,他有一个具体的范围(0~127),计算机在读取它们的时候会将它们的10进制的编号给转化成2进制以此来识别它们每一个字符(统称)。因此我们可以在这张表上看到每一个字符所对应的编号。

这里我们再返回来看一下刚刚打印的结果S——83、E——69,下面我们在上面的表上找到83和69这两个编号如下图所示:

图上是不是刚好69对应的是E,83对应的是S呀。

看到这里大家应该能理解这个打印结果以及ASCII码值了吧。这里我想问下大家还记不记得在介绍字符串时我们有对字符串里的内容进行过监视这个操作,如下图所示:

大家可以看一下在字符‘a’、'b'、'c'、'\0'的左边都紧跟着一个数分别是97/98/99/0,这时我们先对照ASCII码值寻找一下这些字符以及它自己的编号,如下图:

看到这里大家就知道在监视时出现在字符左边的数字是什么意思了吧,没错这些数字就是他对应的在ASCII码表中的编号。

下面我们来探讨一下这些转义字符它代表的是一个字符还是一串字符,这里我们借用strlen函数来计算,代码如下:

运行结果如下:

这里我们可以看到除了字符串的停止符以外,其他的字符的字符长度都只有一个字符的长度。

下面我们对今天的内容做个总结:

1.转义字符的意思是一些字符通过添加转义序列符“\”使其含义发生了变化,如字符“n”,本身的含义就是一个字符,但是在添加转义序列符后“\n”,它则变成了换行标志;

(注:并不是所有的字符都能被转义)

3.八进制和十六进制转化成十进制的方式就是Σd*n(i-1),d为对应位数的数值,n为对应进制,i为对应位数,如八进制的123转化为十进制就是1*8^(3-1)+2*8^(2-1)+3*8^(1-1)=64+16+3=83;

(注:八进制的数值范围是数字0~7,十六进制的数值范围是数字0~9+字母A~F(a~f))

4.转义字符的字符长度是1。

转义字符的相关知识点我就全部分享完了,如果这篇文章能够帮助大家理解转义字符的话,那它就完成了它的使命,后面随着学习的深入,我会继续分享自己在学习过程中的感受,感谢大家的翻阅,为了帮助大家进一步加深各位对转义字符的理解我提出两个问题,欢迎大家在下面评论一下答案:

1.请问下面这个文件夹的字符串的长度是多少?

c:\Program Files\VS\test\x32\228\test.c

2.如何编写代码能将这个文件夹的字符串以字符的形式打印出来?

这两个问题的答案我会在下篇内容里公示出来,咱们下一篇见。

【计算机组成原理】第一章——计算机系统概述详细介绍计算机的发展历程……

选择语句——if语句

三种循环语句——while语句、for语句、do……while语句

本文讲述了一名计算机萌新初次接触C语言时的一些学习心得与体会

本文介绍了7种数据类型及特点

关键字typedef与关键字static

本篇的主要内容将围绕short/int/long/long long——整型数据类型的区别

#define定义常量和宏

函数 语法 说明 示例 Now Now() 取得系统当前的日期和时间 Dim MyVar MyVar = Now '' MyVar 包含当前的日期和时间。 Date Date() 取得系统当前的日期 Dim MyDate MyDate = Date '' MyDate 包含当前系统日期。 Time Time() 取得系统当前的时间 Dim MyTime MyTime = Time '' 返回当前系

引言:想象一下,你在写代码时,编辑器能够自动提示你可以使用哪些函数、变量应该是什么类型、甚至在你打错字之前就提醒你——这就是 IntelliSense 的魔力。但要让它真正发挥作用,就像给导航仪输入正确的地图数据一样,你需要告诉 VS Code 你的项目"长什么样"。理解核心原理:为什么需要配置?在 ...

1.接入平台链接2.扫码登录3.支付宝开发文档4.查看开发文档,有各种支付方式文档,这里用到手机网站支付5.到开发者中心/网页/&移动应用/应用列表,填写应用基础信息,应一个账号管理不同的产品,创建网页&移动应用,使用场景:自用型应用,应用名字ihome_py_li,还可以添加功能6.需要签约7.配置环境,支付宝告诉我们,应用网关:支付宝将交易结果发生给服务器的接口,授权回调地址:

而Spring Boot采用“约定优于配置”,默认提供了许多合理的配置,减少了XML配置的需求,更多地使用Java注解进行配置,使开发过程更加简洁高效。同时,Spring Boot集成了各种常用功能的starter依赖,一键引入即可使用,而传统Spring框架集成新功能时需要手动添加多个依赖并进行复杂配置。无论是小型项目的快速迭代,还是大型企业级应用的构建,Spring Boot都展现出了强大的优势和广泛的适用性。添加依赖后,在IDE中刷新Maven项目,Maven会自动下载相应的依赖包。

THE END
0.C语言入门:用字符构建正方形文章浏览阅读227次。这篇博客介绍了一道简单的C语言入门题目,要求根据输入的整数m确定正方形边长,并使用特定字符n,通过for循环在控制台输出字符组成的正方形。jvzquC41dnuh0lxfp0tfv8r2a7795>=991gsvrhng1jfvjnnu171;;=9997
1.正方形图案绘制(1)第一个画的正方形其边以大写字母’A’填充,正方形里面不需要填充。 (2)如果规则一画的正方形边长大于3,则将其分成边长为n/3的9个小正方形,每个小正方形继续画图,如果画的地方如果已经存在字符,则保持不变。如果不存在字符,则一律以大写字母’B’填充。和规则二相同的地方是,只填充边,不填充里面部分。 jvzquC41dnuh0lxfp0tfv8vsa7843>=261gsvrhng1jfvjnnu1739<6369;
2.6)一个名为toString()的方法返回这个正方形的字符串描述。如注意:题目要求toString方法返回字符串,我们按照设计实现。 下面是补全后的完整代码:根据Square类的设计要求,我将补全Java程序中的空缺内容,完整实现如下: import java.util.Scanner;classSquare{// 私有成员变量声明privatedoubleside;// 正方形边长// 无参构造方法(默认边长为1.0)publicSquare(){ side =1.0;// 设置jvzquC41ygtlw7hufp4og}4cpu}ft878:h€u;x6x
3.美丽的字符正方形FINAL菜鸟plus美丽的字符正方形FINAL 输入一个长度不超过50的由小字字母构成的字符串,输出由这个字符序列构成的最大的正方形。 输入格式: 由小写字母构成的一个字符串。 输出格式: 将字符串围成最大可能的正方形输出,字符串从正方形的左上方开始,按顺时针方向绕行。jvzquC41yy}/ewgnqiy/exr1y|€egkqqi1v039;375850qyon
4.在记事本,如何入正方形里头带个勾的符号(不是在OFFICE软件)在记事本,如何入正方形里头带个勾的符号(不是在OFFICE软件)问在线客服扫码问在线客服“□”里面带个jvzquC41cuq/|xq0eqs/ew4z1474:B5:90nuou
5.C++基础编程练习:打印星号正方形简介:本作业旨在帮助C++初学者掌握循环控制结构和字符输出技巧,通过实现根据用户输入打印相应大小的星号正方形。介绍了for循环的使用、标准输入输出、二维数组的理解、嵌套循环的概念、条件判断语句以及使用IDE编译和调试的流程。通过本实践,学生将巩固C++基础知识,并培养逻辑思维。 jvzquC41dnuh0lxfp0tfv8|gkzooa;=9688258ftvkimg8igvcomu86649=37::
6.在Windows中,如何检测Unicode字符是否呈现为方形(豆腐)?问在Windows中,如何检测Unicode字符是否呈现为方形(豆腐)?ENwsb-detect可以帮助广大研究人员判断应用程序jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c|p1uql03:8978=72
7.HTMLUTF在本教程中,您将学习如何使用UTF-8几何形状,范围:十进制9632-9727,十六进制25A0-25FF如果您希望在HTML中显示特殊字符,可以使用下表中的HTML实体。如果字符没有HTML实体,则可以使用十进制(dec)或十六进制(hex)引用。jvzquC41y5ydjxtnu0io1lmctukuu8wgha{uhhlgqokutrh0cuv
8.AutoCAD中的亚洲字符字体显示或打印为问号在AutoCAD 中查看和打印包含中文/日语/韩语 (CJK) 和/或其他亚洲字符的图形会导致意外结果。这些可以包括: 有些角色没有被策划。 其他字符也被绘制出来,但只是作为正方形和/或问号 (???)。 输出中缺少文本或属性。 ​ 原因:系统中找不到或没有用于定义文字的字体文件 (.shx) 解决jvzquC41yy}/c~yqfgyl0lto0et0u~urqtz0vnhjpkibn8ftvkimg8hccu5thmhctvodnnx1uhjdc{ykenkt1LMU1Fotruf{kpm.cwi/rnuuvrsi/enjpnxg/enbtjhvgty.h{to/youjrs/CwzpEJI0jvsm
9.新建文件exp1好的,我现在需要在Linux下用NASM写一个汇编程序,在VSCode里创建exp1_3.asm,输出边长为6的由'#'组成的正方形,每个字符用空格分隔。首先,我得回忆一下汇编语言的基本结构,特别是Linux系统调用的使用。 首先,汇编程序的结构通常包括section定义,比如.data存放数据,.text存放代码。然后,程序入口是_start,通过系统调用jvzquC41ygtlw7hufp4og}4cpu}ft8
10.方形符号░方形块的浅色阴影 ▒中等方块阴影 ▓方形方块的深色阴影 ▔方块的上八分之一 ■黑色方块 □白方块 ▢带有圆角的白色正方形 ▣包含黑色小方块的白色方块 ▤带水平填充的正方形 ▥垂直填充正方形 ▦具有正交剖面线填充的正方形 ▧左上至右下填充的正方形 jvzquC41ep4qkuncrr4dqv4u{ohpn8xswcxf1
11.超级字符游戏下载超级字符下载v2.05安卓版思路惊奇的字符游戏,玩家的目标是利用字符吃掉黑点,比想象中要难很多,因为下坠的不是什么正方形圆圈,是26个英文字母,构造大部分都是不规则的,O什么的还好说,顺着胁迫滚下去就行,q,f,k之类的字母就难办了。 后面有些关卡要求同时吃掉多个黑点,或者把字母吹起来,滚到缝隙里,要求越来越变态。 jvzquC41yy}/:@l0eqs0{xzzk1743B830jznn
12.GraphPadPrism绘图教程如何在图表里插入特殊字符/符号大家在用GraphPad Prism做图时会使用相同的字符/符号:菱形、正方形、星形和圆形。 这些都是Prism默认的设置。但有时候,有的人需求不同,而使用Prism你可以随心所欲的添加特殊字符/符号。每种图的添加方法不同,请跟我来逐个看看~ 数据点的特殊字符/符号 jvzquC41yy}/drtoctz/ew4pgyy03?44;6988:3jvo
13.word字符边框在哪在word中字符边框的功能在那里找呢,在开始菜单里面。具体是那个图标,下面用图给你介绍一下,效果如下: word字符边框在哪: 1、打开word文档,或是打开word文件都可以。效果如下: 2、点击开始选项,在字体菜单上,找到A上有个正方形的图标。就是字符边框功能图标。你明白了吗? 热门 word文字下有蓝色双横线怎么去掉 word自动生成目录的方法 jvzquC41o0xk||0eqs0lrfqejkoi86:8::/j}rn
14.特殊符号|特殊字符|图形文字|符号文字|中文图形|符号字体正方形、长方形、菱形和填色方块的符号ˍ∎⊞⊟⊠⊡⋄⎔⎚▀▁▂▃▄▅▆▇█▉▊▋▋▌▍▎▏▐░▒▓▔■□▢▣▤▥▦▧▨▩▪▫▬▭▮▯▰▱►◄◆◇◈◘◙◚◛◢◣◤◥◧◨◩◪◫☖☗❏❐❑❒❖❘❙❚◊ 三角jvzq<84yyy4fexrep0ipo8yqqn5t{vgqnki`vn}v1
15.js+canvas实现绘制正方形并插入文字效果(居中显示)javascript技巧// 前一个字符宽度 } } } } 总结 到此这篇关于js+canvas实现绘制正方形并插入文字效果的文章就介绍到这了,更多相关js canvas绘制正方形插入文字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 您可能感兴趣的文章: js+canvas绘制五角星的方法 js+canvas简单绘制圆圈的方法jvzquC41yy}/lk:30pku1sfxcuiskyy152<34>8l30nuo
16.html正方形字符,HTML常用标签以及特殊符号无序标签 type(=DISK实心圆 SQUARE小正方形 CIRCLE空心圆) 有序标签 type(=1数字 A大写英文字母 a小写英文字母 I大写罗马字母 i小写罗马字母) start(=起始数) 序列 小标题 内容(内容首字位置与小标题最末字的下一字位置垂直相同) 表单标签 表明表单中类型 aligntype(类型) name size(宽度) value(默认值) jvzquC41dnuh0lxfp0tfv8|gkzooa;>;33:138ftvkimg8igvcomu86399837>6