C语言——利用数组批量处理数据(字符数组)

【context】

一维数组

定义 

初始化 

二维数组

定义 

初始化 

字符数组

 初始化

字符串与其结束的标志

字符数组的输入输出 

C语言函数库中一些处理字符串的函数(待更新)

sizeof与strlen


一维数组

定义 

 类型符  数组名[常量表达式];

Ø 在定义数组并对其中各元素赋值后,就可以引用数组中的元素
Ø 只能引用数组元素而 不能一次整体调用整个数组全部元素的值

初始化 

//在定义数组的同时,给各数组元素赋值
int a[10]={0,1,2,3,4,5,6,7,8,9};

//部分赋值,系统自动给剩余部分元素赋值为0
int a[10]={0,1,2,3,4};//相当于int a[10]={0,1,2,3,4,0,0,0,0,0};

//未赋值的数据自动设为0
int a[10]={0,0,0,0,0,0,0,0,0,0};//相当于int a[10]={0};

//数据个数已经确定,可以不指定数组长度
int a[5]={1,2,3,4,5};//可写为int a[ ]={1,2,3,4,5};

二维数组

定义 

 类型符  数组名[常量表达式][常量表达式]

初始化 

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

int a[3][4]={{1},{5},{9}};//等价于int a[3][4]={{1,0,0,0},{5,0,0,0},{9,0,0,0}};

int a[3][4]={{1},{5,6}};//相当于int a[3][4]={{1},{5,6},{0}};

 

字符数组

 初始化

char arr1[2]={'a','b'};
char arr2[2]={'a',98};
char arr3[2]="a";//注意字符数组末尾为自动添加的'\0'

char arr[]="abcdef";

字符串与其结束的标志

Ø C 语言中,是将字符串作为 字符数组 来处理的
Ø 关心的是字符串的 有效长度 而不是字符数组的长度
Ø 为了测定字符串的实际长度, C 语言规定了字符串结束标志 ’\0’
Ø ’\0’ 代表 ASCII 码为 0的字符;从ASCII 码表可以查到, ASCII 码为 0的字符不是一个可以显示的字符,而是一个“空操作符”,即它什么也不做;用它作为字符串结束标志不会产生附加的操作或增加有效字符,只起一个供辨别的标志;'\0'占一个空间。

字符数组的输入输出 

Ø 字符数组的输入输出可以有两种方法:
  • 逐个字符输入输出(%c)
  • 整个字符串一次输入输出(%s)
Ø 输出的字符中不包括结束符’\0’
Ø %s 输出字符串时, printf 函数中的输出项是字符数组名,不是数组元素名;用 %c 输出某个字符时, printf函数中的输出项是数组元素名,不是字符数组名(否则会报错)。
Ø 如果 一个字符数组中包含 多个 ’\0’ ,则遇第一个 ’\0’时输出就结束
Ø 可以用 scanf函数输入一个字符串
Ø scanf 函数中的输入项 c 是已定义的字符数组名,输入的字符串应 短于 已定义的字符数组的长度。

C语言函数库中一些处理字符串的函数

 后续更新~

sizeof与strlen

sizeof——计算数组所占空间的大小

strlen——计算字符串的长度(有效长度) \0之前的字符个数

【注意】 

  • strlen只跟字符串有关,只能针对字符串求长度。是库函数,需要引头文件#include<string.h>
  • sizeof计算变量、数组、类型的大小,单位是字节。是操作符
  • 可以验证'\0'也占一个字节。
  • strlen遇到\0停止读取

【举例说明】  

如果一个字符数组中包含多个’\0’,则遇第一个’\0’时输出就结束;\0是一个字符,'\0'只是引用字符\0

(易混淆)在abc后的随机处出现\0

若计算整型数组的长度,如下:总大小/元素大小——sizeof的单位是字节(算的是字节数)


供后续学习的参考,加深印象。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值