一维字符型数组
概念
在C语言中用来存放字符串的数组
定义: 数据类型 数组名 [元素个数];
char str [ 32 ];
注意:
1.元素个数必须为常量
2.元素个数大于等于要存储的字符串的字符个数
3.要注意看不见的‘\\o’也占据一个字符
数组访问
数组名 [元素下标];
元素下标:0—元素个数-1、
初始化
全部初始化
char str[32] = {'a','b','c','d','e'};
char str[32] = {"abcde"}; 6个字符,因为有一个隐藏的\\0
char str[32] = "abcde"
局部初始化
char str[6] = {'a','b','c'};
char str[6] = {'0'} = "0"
未给定初值的元素为0值,即\\0
char str[6] = {0}; 将str数组清零“\\0”
默认初始化
char str [ ] ={'a','b','c','d','e'}; 5个
char str [ ] = {"hello"}; 6个
char str [ ] = "hello" 6个
注意最好不要用默认初始化
数组的基本特性都一样便不在过多赘述
字符串打印(输出)
puts printf
printf("%s",str); %s : 将str数组开头到第一个\\0的字符串进行打印。
puts(str);
字符串的接受(输入)
scanf("%s",str); 不需要&取地址符号
gets(str); 可以接受空格,scanf一般情况下不接受空格跟“\\n”
字符串常用函数
strlen
int len = strlen(str); 从开头到\\0的字符串长度,不算‘\\0’的字符串长度
字符串一般定义为 从开头到\\0,后面的为脏数据
sizeof(str) : 获得str在内存中所占字节数
strcpy
strcpy(目的空间,源字符串):将源字符串拷贝到目的空间
目的空间一定要能够存放源字符串,不然就会发生越界访问。
strcpy的使用如图下代码示例


strcat
strcat(一,二):将第二个字符串拼到第一个字符串末尾
并且第一个一定要存得下
strcmp
比较两个字符串是否相同,相同返回0,若第一个字符串>第二个,返回大于零的值,若相等,则返回0,反之亦然
比大小:比较两个字符串中,不相同的字符ASCLL值谁大
str(str1,str2);具体示例代码如下:


二维整型数组
定义
数据类型 数组名[行个数][列个数];
元素访问:数组名[行下标][列下标];
初始化
全局
int a[2][3] = {{1,2,3},{1,2,3}};
int a[2][3] = {0} = {{0}};对二维数组进行清零
局部
int a[2][3] = {{1,2,3},{4}};
默认 行可以省略,列不能省略
int a[][3] = {1,2,3,4,5,6};2行3列
二维数组的接受和打印(输入和输出)
如图所示,在一维数组的基础上,在加入一个for循环嵌套

存储
1.连续性、
2.有序性
二维数组的本质
一维数组的数组



