C语言字符数组

C语言字符数组

1.1字符数组的定义和引用
1、字符数组的定义

字符数组的定义与其他数据类型的数组定义类似,一般形式如下:

char 数组标识符[常量表达式]

因为要定义的是字符数组,所以在数组标识符钱所用的类型是char,后面括号中表示的是数组元素的数量。
例如,定义一个字符数组 a

char a[5];

其中,a表示数组的标识符,5表示数组总包含5个字符类型的变量元素。

2、字符数组的引用

字符数组的引用与其它类型数据一样,也是使用下标的形式。例如,引用上面定义的数组a中的元素

a[0]='H';
a[1]='e';
a[2]='l';
a[3]='l';
a[4]='o';
2.字符数组的初始化

对字符数组进行舒适化操作时,有以下几种方法。
(1)逐个字符付给数组中的各个元素。

char a[5]={'H','e','l','l','o'};

例:使用字符数组输出一个字符串

#include "stdio.h"
main()
{
	int q;
	char a[5]={'H','e','l','l','o'};
	for(q=0;q<5;q++)
	printf("%c",a[q]);
}

输出结果:
在这里插入图片描述
(2)在定义字符数组时进行初始化,此时可以省略数组长度
如果初值个数与预定义的数组长度相同,在定义时可以省略数组长度。系统会自动根据初值个数来确定数组长度。

char a[]={'H','e','l','l','o'};

(3)利用字符串给字符数组赋初值
通常用一个字符数组来存放一个字符串。例如,用字符串的方式对数组作初始化赋值。

char a[]={"Hello"};

或者将“{}”去掉,写成

char a[]="hello";

例:使用二维字符数组输出一个钻石形状

#include "stdio.h"
main()
{
	int a,b;		//用来控制循环的变量
	char c[][5]={{' ',' ','*'},
				{' ','*',' ','*'},
				{'*',' ',' ',' ','*'},
				{' ','*',' ','*'},
				{' ',' ','*'}};
	for(a=0;a<5;a++)
	{
	for(b=0;b<5;b++)
	{
	printf("%c",c[a][b]);
}
printf("\n");
}
}

运行结果:
在这里插入图片描述

3.字符数组的结束标志

在C语言中,使用字符数组保存字符串,也就是使用一个一位数组保存字符串中的每一个字符,此时系统会自动为其添加“\0"作为结束符。
例如,使用下述代码初始化一个字符数组:

char a[]="hello";

字符串总是以“\0”作为串的结束符,因此当把一个字符串存入一个数组时,也同时把结束符"\0"存入数组,并以次作为该字符串是否结束的标志。
“\0”是由c编译系统自动加上的,因此上面的赋值语句等价于

char a[]={'h','e','l','l','o','\0'}
4.字符数组的输入和输出

字符数组的输入和输出有两种方法:使用格式符“%c”和格式符“%s”。
(1)使用格式符“%c”进行输入和输出
使用格式符“%c”实现字符数组中字符的逐个输入与输出。例如,循环输出字符中的元素。

#include "stdio.h"
main()
{
	int a;	//负责循环控制
	char b[]="Hello";
	for(a=0;a<5;a++)
	{
	printf("%c",b[a]);
	}
	printf("\n");
}

运行结果:
在这里插入图片描述
(2)使用格式符“%s”进行输入或输出
使用格式符“%s”将整个字符串一次输入或输出,例如,输出一个字符串

#include "stdio.h"
main()
{
	char b[]="Hello";
	printf("%s\n",b);
}

运行结果:
在这里插入图片描述
其中使用格式符“%s”讲字符串进行输出,此时需注意一下集中情况
1.输出字符不包括“\0”
2.用“%s”格式输出字符串时,pritnf函数中的输出项是字符数组名a,而不是输出中的元素名a[1]等。
3.如果数组长度大于字符串实际长度,则也只输出到“\0”为止
4.如果一个字符数组中包括多个“\0”,结束字符,则在遇到第一个“\0”时输出就结束。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值