1.字符串
C语言中字符串常量是一对双引号括起来的一串字符,在表示字符串常量时,不需要人为地在其末尾加入‘\0’,C语言编译程序会自动在末尾添加字符‘\0’。例如,“english”,“I have a book”,“How are you”都是字符串常量。
C语言中字符串常量给出的是地址值,字符串常量在内存中的存放形式是按字符串中字符的排列次序顺序存放,每个字符占一个字节,并在末尾添加‘\0’作为结束标志。字符串常量是字符串在内存中所占的一串连续存储单元的首地址。
C语言中没有字符串变量,所以使用字符数组来存放和处理字符串。其中,一维字符数组可以存放一个字符串,二维字符数组可以存放多个字符串。
2.字符数组
(1)字符数组的定义。
字符数组的定义形式如下:
说明:
①在定义一维字符数组时,“维界表达式”的值表示字符数组的长度。该值应该比它将要实际存放的字符串的长度多1,以便用来存放字符串结束标志‘\0’。
②在定义二维字符数组时,“维界表达式1”的值,表示存放字符串的个数;“维界表达式2”的值,表示所存放的最长字符串的长度,该值应该比将要存放的多个字符串中的最长字符串所包含的字符个数多1。这样就要多出一个元素,以便用来存放这个最长字符串的结束标志‘\0’。
例如:
定义数组名为ch的一维字符数组和名为name的二维字符数组。
字符数组ch的长度为5,可以存放的字符串长度最大值为4。即字符数组ch包含ch[0],ch[1],ch[2],ch[3],ch[4]五个元素。如果将字符串“love”存放到字符数组ch中,则前4个元素依次存放单字符‘l’,‘o’,‘v’,‘e’,第五个元素ch[4]存放‘\0’。
字符数组name包含以下18个元素:
二维字符数组name可以看作包含name[0],name[1],name[2]三个元素的一维数组,而这三个元素又分别是包含6个元素的一维字符数组。所以字符数组name可以存放三个字符串,每个字符串长度最大值为5。有时也称二维字符数组为字符串数组。
(2)字符数组具有普通数组的一般性质。
3.字符数组的初始化
所谓字符数组的初始化,就是要给定义的字符数组赋初值。常用的赋值方法是在定义字符数组的同时给数组赋初值;也可以先定义字符数组,然后再给字符数组元素赋值。(www.xing528.com)
(1)使用字符常量给字符数组中的各个元素赋初值。
例如:
字符个数(含‘\0’)可以小于或等于数组的长度,但不能大于数组的长度。如果小于数组长度,剩余的元素自动赋值为空字符,即‘\0’。
(2)使用字符串常量给字符数组赋初值。
例如:
将字符数组s2的前7个元素依次赋值,最后一个元素s2[7]的值默认为‘\0’。
数组初始化时,可以不定义数组的大小,由系统自动给出。
例如:
二维字符数组s4可以看作由两个元素s4[0]、s4[1]组成的一维数组,而s4[0]是存放字符串“max”的数组,s4[1]是存放字符串“min”的数组。
(3)给字符数组元素逐个赋字符值,最后人为地加入字符串结束标志‘\0’。
例如:
注意:
当作字符串变量使用的字符数组初始化时,不能将字符串常量直接赋给数组名。
例如:
这种赋值形式是不允许的。因为字符串常量给出的是地址值,数组名ss是一个地址常量,不能被重新赋值。
4.字符串数组
所谓字符串数组就是数组中的每个元素又都是一个存放字符串的一维数组。实现这一结构的代表是二维字符数组。即一个二维字符数组可以看作一个一维数组,这个一维数组中的每一个元素又是一个存放字符串的一维数组。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。