5.初识C语言 - 字符串,转义字符

什么是字符串?一串字符,即用双引号括起来的一串字符

代码   (%s:打印字符串,%c\n:打印单个字符)       编译运行结果

    

 as[]是一个字符数组,里面的元素是字符串“abc”,字符数组即为一组相同类型的元素;

注意的是:字符串在结尾的位置隐藏了一个\0的字符;\0是字符串的结束标志。

以上何以见得呢?

我们需要调出监视窗口,监视窗口只有在调试过程中才会发挥作用;所以首先,ctrl+F10进行调试,在菜单栏“调试”窗口中的“窗口”选项里选择监视,任选监视序号,在监视对象栏里输入所监视对象,回车即可(-针对于VS 2019软件-)

代码                                                          监视窗口

   

可以看到,类型下显示的是char[4],而我们代码的字符串元素只有“abc”,从此处可以见得,字符串在结尾隐藏了\0字符。

但是!该字符串的长度并不等于字符串元素数

这时我们引入一个函数:strlen,即string length,strlen是用来计算字符串的长度的,在使用strlen时我们需要引入关于strlen函数的头文件,即#include<string.h>

代码                                                           编译运行显示 

   

由strlen计算出的字符数组as的长度为3,所以我们可以知道\0仅仅作为字符串的结束标志,是不计入字符串的长度大小的。

提问:char as[]=“abc”和char ass[]={‘a’,‘b’,‘c’}一样吗?

前者是是一个字符串构成的字符数组,后者是单个字符构成字符串再构成的字符数组

欲知是否一样,printf试试。

代码                                       监视窗口                                  编译运行结果                                       

  

答案很显然易见,不一样

char ass[]={‘a’,‘b’,‘c’}是由三个字符构成的字符串再构成字符数组的,已经明确给予了三个字符,末尾并没有‘\0’,所以监视窗口显示为char[3],char ass在运行过程中没有遇到‘\0’这个结束标志字符,所以在运行abc之后并没有停下来,而是接着往下寻找\0,这个过程是随机的。

转义字符

什么是转义字符?转义了它原来的意思的字符就叫转义字符,如下:

代码                                                         结果

  

在代码中编写“c:\test\test.c”,运行结果并不是c:\test\test.c,而是c:      est     est.c。

这是由于字符\t被转义成了空格

常见的转义字符有:

转义字符转义为注释
??)]在早期的编译器有出现这种情况,但是现在大部分编译器不支持
\''

\"

"
\n换行符换行
\a警告字符发出蜂鸣
\b退格字符向左删除一位
\f进纸符号
\r回车符号
\t水平制表符
\v垂直制表符
\ddd八进制数ddd转化为10进制数后对应的ASCII码值
\xdd十六进制数dd转化为10进制数后对应的ASCII码值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值