我是谁? 字符串和转义字符

本文介绍了C语言中的字符串基础知识,包括字符串字面值、结束标志以及调试技巧。还探讨了strlen函数用于计算字符串长度,并讲解了转义字符的概念,如 、 等,以及如何使用八进制和十六进制表示ASCII码。

今天再来了解另一个C语言基础概念

首先是字符串

字符串

这种由双引号引起来的一串字符,称为字符串字面值,简称字符串

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

这里我们再了解一下以后写程序必须要用到的一个功能,那就是——调试

首先,我们先创建一个char类型的arr数组

 这时按键盘上的F10

进行调试,再多按几下,使得数组代码调试起来后,进行以下步骤

 这里的监视窗口可以随即选一个,不影响

随后输入数组名称

 再点一下旁边的三角形

可发现,arr的最后一个符号中,赫然有个 ‘\0’ 这个\0就是字符串的结束标志

 此外,我们再创建一个数组arr1,和arr2

 再进行调试,并且进行监视

 再将两者同时打印

 我们会发现   怎么第二个打印出了烫烫烫呢?

其实是这样的:\0是打印的结束标志,arr1中存在\0,所以打印完就会停止,而arr2本身没有\o则会继续打印直到找到\0为止,所以就会出现上面的状况

再插播一点:%s是打印字符串,遇到\0自然结束

 这里我们再来了解一个函数——strlen

   strlen由string和length组成,strlen是库函数,是专门求字符串长度的函数

使用strlen是需要引用头文件

#include<string.h>

打印后发现arr2是随机值正是因为本身没有带/0

当给arr2后面加上/0后打印出来的就是 abc 打印的长度也是3

 好了字符串部分就先讲到这里啦~

加载中----------------------------------------------------------------------------------------------------------------------

 加载完成 ! -----------------------------------------------------------------------------------------------------------------

接下来我们来了解一下转义字符

转义字符

顾名思义,就是改变了字符的原来意思   ̄O ̄)ノ

比如下面这行代码

 大家先猜一下,打印出来的结果会是怎样

是上面全部都打印出来吗?

当然。。。。。。。。。。。。。不是!(′▽`〃)

 因为\t是转义字符,代表水平制表符

就像\n是换行的意思

接下来我们来了解一下部分转义字符

\?                在书写连续多个问号时使用,防止他们被拆成三字母词

\'                 用于表示字符常量

\"                用于表示字符串内部的双引号

\\                 用于表示一个反斜杠,防止它被解释为一个转义序列符

\a                警告字符,蜂鸣

\b                退格符

\f                 进纸符

\n                换行

\r                 回车

\t                 水平制表符

\v                垂直制表符

\ddd            ddd表示1~3个八进制的数字。如\130 X

接下来我们要对部分转义字符进行较为详细的认识

\?

防止书写多个问号时被解析成三字母词

 在有些情况下

??)会被解析成 ]

为了不让它被解析可将代码改成(are you ok\?\?)

\n

换行

\

当要打印单个字符 ' 时

上述代码不能实现

在中间加上一个 \ 就行 

双引号同理

 

当我们需要打印  \

就可以这样

注意: \ 还可以防止字符串被解释成转义字符

效果如下

 \ddd

表示1~3八进制数字

我们试着打印\130 会发现打印出来的是个 “ X ”

130八进制转换为十进制为88(叫做ASCII码值

这里我们又要引入一个表——ASCII表

 表中的88正好对应  X

\xdd

dd表示2个十六进制数字

我们试着打印  \x40

40十六进制转换为十进制是64(ASCII)

由表可知打印出来的应该是 @ 结果也确实如此

 OK,今天我们就了解到这里,期待下次再见!o(*////▽////*)q

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值