字符数组

更新时间:2023-11-17 21:29

字符数组是指用来存放字符数据的数组。其定义的一般形式为: char 数组名[数据长度] 。字符数组用于存放字符或字符串,字符数组中的一个元素存放一个字符,它在内存中占用一个字节。C语言中没有字符串类型,字符串是存放在字符型数组中的。

定义

用来存放字符数据的数组称为字符数组。字符数组中的一个元素存放一个字符。定义字符数组的方法与定义数值型数组的方法类似。

其定义的一般形式是:char 数组名[数据长度]

例如:

char c[10];

c[0]='I'; c[1]=' '; c[2]='l'; c[3]='o'; c[4]='v'; c[5]='e'; c[6]=' '; c[7]='y'; c[8]='o'; c[9]='u';

以上定义了c为字符数组,包含10个元素。

由于字符型数据是以整数形式(ASCII代码)存放的,因此也可以用整型数组来存放字符数据,例如:

int c[10];

但这时每个数组元素占2个字节的内存单元,浪费存储空间。

字符数组也可以是二维或多维数组,例如:

char c[5][10];

即为二维字符数组。

初始化

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

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

char a[8]={'i','l','o','v','e','y','o','u'};

把8个字符依次分别赋给c[0]~c[7]这8个元素。

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

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

也可以定义和初始化一个二维字符数组,例如:

char diamond[5][5]={{' ',' ','#'},{' ','#',' ','#'},

{'#',' ',' ',' ','#'},{' ','#',' ','#'},{' ',' ','#'}};用它代表一个菱形的平面图形。

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

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

可写为:

或去掉{}写为:

元素的引用

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

数组的引用形式为:

数组名[下标]

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

#include

int main(void)

{

int i;

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

}

运行结果为:I like playing basketball

结束标志

字符串和字符串结束标志

输入输出

应用举例

例6.8 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

#include

void main()

{

char string[81];

int i,num=0,word=0;

char c;

gets(string);

if(c==' ') word=0;

else if(word==0)

{

word=1;

num++;

}

}

运行结果

I am a boy.

There are 4 words in this line.

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}