1. 字符型数组的输入和输出
1.1 gets
char str[12];
gets(str);
注意:
1.可以接收' '字符
2.会去掉从终端接收的\n字符
1.2 puts
char str[12];
puts(str);
注意:
1.puts会加上\n字符
1.3 scanf
char str[12];
scanf("%s", str);
注意:
1.scanf无法接收' '字符
2.scanf使用%s不需要加&符号
1.4 printf
char str[12];
printf("str = %s\n", str);
2. 一维字符型数组的初始化(初始化不等于赋值)
2.1 全部初始化
char str[6] = {"hello"};
char str[6] = "hello";
char str[6] = {'h', 'e', 'l', 'l', 'o', '\0'};
2.2 局部初始化
char str[6] = {"hel"};
char str[6] = "hel";
char str[6] = {'h', 'e', 'l'};
char str[6] = {0};
注意:
没有给定初值的元素会被赋值为0('\0')
2.3 默认初始化
char str[] = {"hello"};
char str[] = "hello";
char str[] = {'h', 'e', 'l', 'l', 'o'};
3. 一维字符型数组的存储
3.1 连续性:内存空间连续
3.2 有序性:数据存储顺序有序
3.3 数组所占空间大小
数组所占空间大小 = 每个元素所占空间大小 * 元素个数
char str[32] = {"hello"};
sizeof(str);
4. 字符串常见的操作函数(重点)
4.1 strlen
获得字符串的长度(从字符串开头到最近的\0中间元素个数)
4.2 strcpy
字符串的拷贝
注意:
字符串的赋值不能使用=,要用strcpy
4.3 strcat
字符串的拼接
注意:
字符串的加法不能使用+,要使用strcat
4.4 strcmp
字符串的比较
获得两个字符串比较的结果
相等返回0
第一个字符串>第二个字符串返回>0的值
第一个字符串<第二个字符串返回<0的值
注意:
字符串的比较不能使用=,要使用strcmp
5 字符串的遍历操作
char str[32];
int i = 0;
while (str[i] != '\0')
{
str[i]; //访问每一个字符
6. 二维数组
6.1 二维整型数组
6.1.1 定义
数据类型 数组名[行数][列数];
6.1.2 初始化
1.全部初始化:
int a[2][3] = {1, 2, 3, 4, 5, 6};
int a[2][3] = {{1, 2, 3}, {4, 5, 6}};
2.局部初始化:
int a[2][3] = {1, 2, 3, 4};
int a[2][3] = {{1, 2}, {3}};
int a[2][3] = {0};
int a[2][3] = {{0}};
3.默认初始化:
int a[][3] = {1, 2, 3, 4};
int a[][3] = {{1, 2}, {3}};
注意:
行能省略,列不能省略
6.1.3 存储
连续性:数组空间连续
有序性:数组逐行从左到右存储
二维数组的本质:
二维数组可以看成是一维数组的一维数组
6.2 字符型二维数组(用于存储字符串数组)
6.2.1 定义
char str[5][32];
6.2.2 初始化
char str[5][32] = {"hello", "world", "how", "are", "you"};
char str[5][32] = {{'h', 'e', 'l'}, {'w', 'o'}};