上一篇提到了数组,主要讲了int数组,今天就来讲一下
char数组
1.形式
都是 type name【number/ 】=
对于char数组来说,你可以一个一个的输入,也可以输入一个字符串让计算机自己一一对应。需要注意的是char数组最后有一个\0 ,你可以不表达但必须给他留出空间。(就比如下面两个【】至少是5) 这两种表达形式都是正确的
objectivec
#include<stdio.h>
int main(){
int i=0,size;
scanf("%d",&size);
char text[size]={'a','b','l','e','\0'};
char text2[size]="able";
for(i=0;i<size;i++){
printf("%c",text[i]);}
printf("\n");
for(i=0;i<size;i++){
printf("%c",text2[i]);}
printf("\n");
return 0;}
2."size"可以预先定义
objectivec
#include<stdio.h>
#define size 20
像这样你的size就提前定义了
3.输入与输出
当你规定了char数组想输入变量或者输出的时候,可以一个一个也可以一起(别忘记给\0一个空间如果你不输入\0的话)
objectivec
#include<stdio.h>
#define size 20
int main(){
int i=0;
char text[size];
char text2[size];
scanf("%s",text);
for(i=0;i<size;i++){
scanf("%c",&text2[i]);}
printf("%s\n",text);
printf("%s\n",text2);
return 0;}
可以看到text和text2是不同的,对于text我们选择输入%s字符串,这个时候text是地址,所以不需要再添加地址符了;而text2中一个一个输入字符,所以需要只想这个字符的地址,也就是&text2【i】的表达。
4.小练习

objectivec
#include<stdio.h>
#define size 30
int main(){
int i,length=0,count=0;
char text[size];
char label[]="Result";
scanf("%s",text);
for(i=0;text[i]!='\0';i++){
printf("index%d:%c\n",i,text[i]);
length++;
if(text[i]=='a'||text[i]=='A')
count++;}
printf("length=%d,number od 'a' or 'A'=%d",length,count);
return 0;}