📄 codetc26.dat
字号:
字符数组
用来存放字符数据的数组是字符数组.字符数组中的一个元素存放一个字符.
字符数组的定义
定义方法与前面介绍的类似.例如:
char c[10];
c[0]='I';c[1]=' ';c[2]='a';c[2]='m';c[2]=' ';c[2]='h';c[2]='a';c[2]='p';c[2]='p';c[2]='y';
定义c为字符数组,包含10个元素.也可以用整型数组存放字符型数据,因此上面第一行也可以改用 int c[10]; /*合法,但浪费存储空间*/
字符数组的初始化
对字符数组初始化,最容易理解的方式是逐个字符赋给数组中各元素.如:
char c[10]={'c',' ','p','r','o','g','r','a','m'};数组的状态如下图所示.
c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7] c[8] c[9]
----------------------------------------------------------
c ' ' p r o g r a m \0
----------------------------------------------------------
如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度.如:
char c[]={'c',' ','p','r','o','g','r','a','m'};
数组c的长度自动定为10.用这种方式可以不必人工去数字符的个数,尤其在赋初值的字符个数较多时,比较方便.
字符数组的引用
可以引用字符组中的一个元素,得到一个字符.
例题: 输出一个字符串.
main()
{
char c[10]={'I',' ','a','m',' ','a',' ','b','o','y'};
int i;
for(i=0;i<10;i++}
printf("%c",c[i]);
printf("\n");
}
运行结果为: I am a boy
字符串和字符串结束标志
以C语言中,将字符串作为字符数组来存放.这个字符串的实际长度与数组长度相等.有时,人们关心的是有效字符串的长度而不是字符数组的长度.例如,定义一个字符数组长度 为100,而实际有效字符只有40个.为了测定字符串的实际长度,C语言规定了一个"字符串结束标志",以字符'\0'代表.如果有一个字符串,其中第10个字符为'\0',则此字符串的有效字符为9个.也就是说,在遇到字符'\0'时,表示字符串结束,由它前面的字符组成字符串.
系统对字符串常量也自动加一个'\0'作为结束符.例如"C Program"共有9个字符但在内存中占10个字节,最后一个字节'\0'是由系统自动加上的.字符串作为一维数组存放在内存中.
字符数组的输入与输出
字符数组的输入输出可以有两种方法:
(1) 逐个字符输入输出.用格式符"%c"输入或输出一个字符.如上例.
(2) 将整个字符串一次输入或输出.用"%s"格式符,意思是输出字符串(String).例如:
char c[]={"China"};
printf("%s",c);
请注意:
(1) 输出字符不包括结束符'\0'.
(2) 用"%s"格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名.写成下面这样是不对的: printf("%s",c[0]);
(3) 如果数组长度大于字符串实际长度,也只输出到遇'\0'结束.如
char c[10]={"China"};
printf("%s",c);
也只输出"China"5个字符,而不是输出10个字符.这就是用字符串结束标志的好处.
(4) 如果一个字符数组遇到一个以上'\0',则遇第一个'\0'时输出就结束.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -