c++ 数组置0_C语言之数组系列三:字符数组

1.字符数组的定义

在c语言中,没有专门的字符串变量,而是将字符串存入字符数组来处理;即用一个一维数组来存放一个字符串,每个元素存放一个字符;如:char c[5]; 字符数组是数组的一个特殊情况,但它的定义方法与上述介绍的类似;引用方法可以与上述介绍的同,也有其独特的引用方法;由于字符型与整型是相互通用的,因此上面定义也可改为:int c[5];

4e748a61a5bb0caf0a66f2f49fcb16d7.png

2.字符数组的初始化

①按元素赋初值

如 static char c[10]={'s','t','o','r','e'};

注意:static char c[10]; 则 c[0],c[1],...,c[9]初值均为'0';

但若 char c[10]; 则c[0],c[1],...,c[9]的值是未知的。

在c语言中,将字符串作为字符数组来处理,即用一个一维数组来存放一个字符串。如:c[10]存放字符串"store"。为了测定实际字符串长度,c语言规定了一个“字符串结束标志”,即‘0’时,表示字符串结束。

a1f3631e1c623898921feadc2408b677.png

②使用字符串常量给字符数组赋初值,如:char c[6]={"china"}; 或 char c[6]="china"; 或 char c[]="china";

注:以字符串方式赋值时,必须保证数组元素个数>=字符个数+1(字符串后面自动加上一个'0')

需要注意的一点:数组初始化后,剩余的元素均为0,但是如果数组未初始化,则static数组元素的值为0,否则元素值是随机的。

64d38789a27aee87cbe4f1b003e68e61.png
5df339df4d797f09202a47f6605928f2.png

3.字符串的引用与输入输出

对于字符数组,在程序中既可以逐个引用字符串中的单个字符(数组元素)

也可以一次引用整个字符串(数组)

①逐个字符数组元素输入输出:用%c格式符描述

②整个字符串输入输出:用%s格式符描述

注:用%s输出,无论数组元素有多少个只要遇到"0"便结束;

5df339df4d797f09202a47f6605928f2.png

4.字符串处理函数

①gets(字符数组名)

从键盘上输入一个字符串(以回车结束)放到数组中,并且得到一个函数值,该数组值是字符数组的起始地址,如:gets(str);

②puts(字符数组名/字符串)

将数组中的字符串(以'0结束的字符序列')输出到终端上,输完换行 ;

③strcpy(字符数组1,字符串/字符数组2)

将字符串/字符数组2中的字符串拷贝到字符数组1中;

注意:字符数组1的长度>=字符数组2/字符串的长度;

拷贝时连同'0'一起拷贝

不能把字符串或字符数组直接赋给一个字符数组。如图:

9bb51caed11a662c62a6fb3eb7c4a04b.png

④strcat(字符数组1,字符串/字符数组2)

将字符串或字符数组2连接到字符串1的后面,并放在字符数组1中;

⑤strcmp(字符数组1/字符串1,字符数组2/字符串2)

功能:比较两个字符串,结果,例如:

字符串1>字符串2时: 正数 x=strcmp("abc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值