字符数组的初始化
字符数组的初始化与数值型数组初始化没有本质区别。但它除了可以逐个给数组元素赋予字符外,也可以直接用字符串对其初始化。
(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数组会自动包含一个以”0“结尾的字符串”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