从C出发 14 --- 字符数组与字符串

文章探讨了字符数组在C语言中的特性,指出字符数组可以视作整数或字符的有序集合,且与字符串密切相关。字符串是由字符数组表示的,以作为结束符。文章提到了sizeof运算符用于获取数组占用的内存,strlen函数计算字符串长度,以及strcmp函数比较字符串。字符串常量隐含包含,而字符数组需包含此字符才能被视为有效字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 字符数组里面的每个元素是char 类型的变量,而char 类型就是一种整型,是最小的整型,小在哪里,小在只占用一个字节

char c1 = 97;
char c2 = a; //字符型 就可以用字符字面量来进行初始化

char 既可以看成整型,又可以看成字符型,所以说字符数组不仅可以看成整数的有序集合,也可以看成字符的有序集合,因此我们可以用字符的有序集合来表示可阅读的文本信息

 sizeof(a) 用来获取 a 这个数组所占用的内存字节数

 字符数组就是 字符串

 字符串在 c 语言里面可以分为 字符串变量(没有办法直接创建,可以用字符数组来模拟)和字符串常量(可以直接获得,双引号括起来的有序字符集)

转义: 指的是转变意义,转变字符的意义

‘ 0 ’ 意义是字符0,字符0所对应的整数是48  ,没转义的时候 字符0 所对应的整数是48

‘ \0 '  加上 \   意味着要进行转义,将0字符的意义转变 ,   转变成0元素 就是整数0

 ' \n ' 表示换行       

\ 将字符n 给转义了

' n '表示字符n


字符数组中的元素,不一定是其所代表的字符串中的元素

用 "Delphi" 对s这个字符数组进行初始化,初始化的结果是 s变成了一个字符串变量

将 s 看成字符数组的时候它的大小是 S1 

将 s 看成字符串的时候,它的长度是S2

如果一个字符数组里面不包含元素,就不是字符串 ,而一个字符串一定是一个字符数组

 dt 是一个字符串变量,因为使用字符串常量来进行初始化的

为什么是5个字节?

字符串字面量,也就是字符串常量包含了0元素,这个0元素在哪里,在最后一个字符这里,虽然我们看不到,但其实不至这4个字符

 

 


字符数组与字符串有什么关系?

字符数组可以当成字符串来使用,在什么情况下字符数组可以当成字符串来使用呐?只有字符数组里面存在 0 元素,那么就可以当成字符串来使用了

0 元素   :  ' \0 '  


 不存在

 a + b是正确的语句,而结果没有做任何处理,直接扔掉

+ 法不能作用于字符串

 

 

int l = strlen("Deyolm");  //定义一个变量 l  ,然后对这个变量 l 进行初始化,初始化的值是 Deyolm 这个字符串的长度, 这个字符串的长度是6 ,因此 l 的值就被初始化为6 ,这个6 就是通过这个 strlen 这个工具得到的

if( strcmp("ab","bc")==0 )
{
    printf("ok");  //不会打印条件为false
}

 # include <stdio.h>  声明使用工具包 ,使用输入输出

#include <string> 声明使用工具包 ,使用字符串运算


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

长生君

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

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

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

打赏作者

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

抵扣说明:

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

余额充值