C学习-基础:数组 - 字符数组 字符串
数组的概念
数组属于构造数据类型中的一种;数组是有序数据的集合。数组中的每一个元素都具有相同的数据类型,用一个统一的数组名和不同的下标来唯一地确定数组中的元素。
-
有序性:数组中的所有元素都有自身的序号0,1,2…
-
相同类型:全部是整数、浮点数、字符型
数组的分类
-
一维数组
-
二维数组
-
字符数组
字符数组
char 数组名[常量表达式];
字符数组的每—个元素可以当作一个字符型变量使用
字符数组初始化
-
逐个给数组中的各元素赋初值
char str [10]= {‘C’,’h’,’i’,’n’,’e’,’s’,’e’,‘\0’};
-
当对全部元素赋初值时,可省去长度说明。
char c[ ]={‘C’,’h’,’i’,’n’,’a’}; //这时数组c的长度,系统自动定为5。
-
也可以对二维字符数组进行初始化
char str[2][5]={ {‘C’,’h','i','n','a'},{'J',‘a','p','a','n'}};
-
用字符串直接给字符数组赋初值,实际应用中,这种方法更常用
char str [10]="Chinese"; // 这里必须 双引号,单引号 错误
注意:用字符串直接给字符数组赋初值,赋值后系统会自动加上字符串结束标志‘\0’。字符数组长度比输入的字符串长度大1
字符数组的引用
与其他类型数组的引用形式一样(for 循环),但字符数组的每个元素都是一个字符。
字符串 和 字符数组 关系
-
C语言中,字符串是借助于字符数组来存放的,以字符‘\0’作为 字符串结束标志。‘\0’是一个转义字符,称为“空操作符”,ASCII代码值为0。‘\0’作为标志占用存储空间,但不计入串的实际长度。
-
通常在字符串常量末尾,系统会自动加一个‘\0’作为结束符。因此用字符串常量对字符数组初始化时,数组长度至少要比字符串实际长度大1。
字符数组的输入输出
-
用格式说明符“%c”实现逐个字符输入输出
例如:
#include <stdio.h> int main(int argc, char const *argv[]) { int waitag; int i; char str[10] = {"Chinese"}; for (i = 0; i < 10; i++) printf("%c", str[i]); scanf("%d", &waitag); return 0; }
执行以上语句,输出结果:
-
用格式说明符“%s”进行整串输入和输出
在scanf函数中使用格式说明“%s”可以实现字符串的整体输入。
char st[10]; scanf("%s",st);
注意:
不能在数组名st前加求地址运算符'&';st是数组名,代表该数组的首地址。
将从str[0]开始依次将输入的字符串放入到数组st中,在最后一个字母之后由系统自动加'\0'
在printf函数中使用格式说明“%s”可以实现字符串的整体输出。
char str[10]; scanf("%s",str); printf("%s",st);
注意:
此处st是数组名,代表该数组的首地址。执行函数时,从该地址开始,依次输出存储单元中的字符,直到遇到第一个'\0' 为止
'\0' 是结束标志,不在输出字符之列。输出结束后不自动换行。
共 0 条评论