【1.2】初识C语言(字符串)

目录

0.字符串

1.字符和字符串的比较

2.字符串在内存的存储

3.转义字符

4.打印ASCII码

5.注释


0.字符串

字符:字符指类字形单位或符号,包括字母、数字、运算符号、标点符号和其他符号,以及一些功能性符号(''单引号里面的)

字符串:将多个字符存放在一起(""双引号里面的)

注意:编程中的符号都是英文符号

在C语言中是没有字符串这种特指的类型的,在C语言中双引号引起来的就是字符串("abc")。C语言中,字符串存在字符数组里面。

数组:相同类型的元素集合

这个代码的意思是将abc存放在数组里面,[]表明arr1是个数组,数组名字叫arr1,数组每个元素的类型是char。

1.字符和字符串的比较

上面两种存放方式,都是将a、b、c三个字符存放到数组里面。区别在于,数组里面真正存放的其他元素不一样。

第一个因为是常量字符串形式,也就是说存放的字符就是abc,不能变了。而字符串以'\0'作为字符串的结束标志,也就是说arr1真正存放的是a、b、c、\0

第二个里面存放的虽然也是字符串,但是是单个存放进去的,后面也没有结束标志。那么,计算机怎么知道你有没有存完呢,一开始也没有指定数组大小啊。所以,第二种是有问题的。

所以第二组打印的时候,会接着后面打印,知道计算机找到一个\0作为字符串的结束标志才会停止

所以在计算arr1和arr2数组长度的时候,前一个的长度是3,后一个长度是随机值

 strlen是求字符串长度(string length):遇到结束标志\0停止,需要头文件string

那么怎么做才能让数组arr2正确存储a、b、c呢?只需要将最后添加一个\0即可。

2.字符串在内存的存储

由于计算机只能认识1、0,那么这么多复杂的字符计算机是怎么存储的呢?

计算机是通过ASCII将键盘上输入的字符存到内存中的,比如说:字符0规定的ASCII码是48,那么计算机就将48认为是0。

那么我们可以得到一个结论,在某种条件下,字符0就等于48

ASCII码:用1Byte表示,也就是8个比特位。因为美国的字符少,所以只使用了低7位,最高位没有使用。所以标准ASCII码的有效范围是0-127(0000 0000 ------0111 1111)

 那么找到\0的位置,发现对应的是0,那我们也可以通过用0作为数组arr2的结束标志。

注意:这里不能输入'0',因为单引号引起来的是字符,计算机会认为它对应ASCII码的是48,而不是结束标志0 

常见:’A‘------65(41H),'a'------97(61H),'0'------48(30H)

3.转义字符

C语言中的\表示转义字符,意思是将原来的意思转变。

比如想要输出一个',不能直接printf("%c\n",''');这个代码是错的,因为C语言会自动将前两个引号做匹配,那么第三个就多出来了,所以就会判错。只要将第二个'改变本来引号的意思,就ok了

 常见:\a  蜂鸣  \t  制表符  \n 换行

 \ddd(d是三个八进制数):意思是将三个八进制数------>十进制-------->ASCII码

 \xdd(d是两个十六进制数):意思是将两个十六进制数------>十进制-------->ASCII码

4.打印ASCII码

 

5.注释

注释两个用处,第一是删除掉暂时不用的代码,第二是为代码添加注释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

听风吹等浪起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值