字符數組的初始化
字符數組的初始化與數值型數組初始化沒有本質區别。但它除了可以逐個給數組元素賦予字符外,也可以直接用字符串對其初始化。
(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