指用来存放字符的数组,字符数组的定义:用来存放字符量的数组称为字符数组。其定义的一般形式时:char数组名[数据长度]字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用两个字节。字符数组类型说明的形式与前面介绍的数值数组相同。例如:chara;由于字符型和整型通用,也可以定义为:inta;但这时每个数组元素占2个字节的内存单元。字符数组也可以是二维或多维数组,例如:charc;

中文名

字符数组

例如

char a[10]

释义

用来存放字符量的数组

作用

存放字符或字符串

字符数组的初始化

字符数组的初始化与数值型数组初始化没有本质区别。但它除了可以逐个给数组元素赋予字符外,也可以直接用字符串对其初始化。

(1)用字符常量逐个初始化数组。例如:

chara={'i','l','o','v','e','y','o','u'};

用逐个初始化的方法与数值型数组初始化本质上是一样的,同样也可以进行完全赋初值及不完全赋初值,但是不完全赋值时没有赋值的元素被赋为空格。

当对全体元素赋初值时也可以省去长度说明。例如:

charc[]={‘c’,‘’,‘p’,‘r’,‘o','g','r','a','m'};

这时C数组的长度自动定为9。

(2)字符串常量初始化数组。例如:

charc[]={‘c’,‘’,‘p’,‘r’,‘o','g','r','a','m'};

可写为:

charc[]={"Cprogram"};

或去掉{}写为:

charc[]="Cprogram";

字符数组的引用

可以通过引用字符数组中的一个元素,得到一个字符。

数组的引用形式为:

数组名[下标]

【例5-8】输入“I like playing basketball”并显示出来。

#include

int main(void)

char a="I like playing basketball";

int i;

for(i=0;i<26;i++)

printf("%c",a[i]);

运行结果为:I like playing basketball

字符数组的输入输出

(1)用getchar()或scanf()的'%c'格式符对数组进行字符赋值。例如,对于数组a:用getchar()赋值:

for(i=0;i<10;i++)

a[i]=getchar();

用scanf()赋值:

for(i=0;i<10;i++)

scanf("%c",&a[i]);

(2)用scanf()的'%s'格式对数组赋值。还是对于数组a:

scanf("%s",a);

scanf("%s“,&a);

输入”C program“并回车时,a数组会自动包含一个以”“结尾的字符串”C program“。

2.字符数组的输出

(1)用putchar()或printf()的‘%c’格式符对数组进行字符赋值。例如,对于数组a:用putchar()赋值:

for(i=0;i<10;i++)

a[i]=putchar();

用printf()赋值:

for(i=0;i<10;i++)

printf("%c",a[i]);

输出结果为:

c program[1]