字符数组
(1) 数组定义
char 数组名 [ 常量表达式 ];
char a[10];
(2) 元素引用
- 下标法
a[0]
- 指针法
*(a+i); //a[i]
一个 i 的量是一个数组类型的字节大小。
注意:
- 不能使用*(a++) 表示 a[1] ,因为 a 是一个指针常量。
(3) 数组初始化
- 对字符数组的全部元素赋值
char a[5] = {'G', 'T', 'A','V'}; //未初始化的元素默认为 '\0'
- 不指定字符数组的长度
char a[] = {'G','T','A','V'};
- 使用字符串常量,末尾添 ‘\0’
char a[5] = {"GTAV"}; // a[4] = '\0'
char a[] = {"GTAV"}; //可以不指定数组长度
char a[] = "GTAV"; //也可以不带花括号
注意:
- 使用字符串常量时,末尾默认添个’\0’
- 字符串的有效长度不算’\0’。
(4) 输入输出
- 逐个字符输入输出
/用循环 - 整个字符串一次输入输出
//输入
char c[10];
scanf("%s", c);
注意:
- 输入时空格符作为字符串间的间隔符,所以按一次空格要换一个字符数组。
- 字符数组名已经是地址,不用再加&。
//输出
char c[] = "GTAV";
printf("%s", c);
注意:
- 只输出有效字符。
- 输出项是字符数组名,不是元素。