1.选择排序
rand()函数获取随机值
2.二维整形数组:
1.定义:
数据类型 数组名[第一维数组的元素个数][第二维数组的元素个数];
数据类型 数组名[行数][列数];
int a[2][3];
2.数组元素的访问:
数组名[行下标][列下表];
a[0][0]
a[0][1]
a[0][2]
a[1][0]
a[1][1]
a[1][2]
3.初始化:
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}};
注意:
初始化 != 赋值
int a[2][3] = {0};
a = {1, 2, 3, 4, 5, 6}; //错
a[2][3] = {1, 2, 3, 4, 5, 6}; //错
a = {{1, 2, 3}, {4, 5, 6}}; //错
4.二维数组的存储:
int a[2][3];
数组所占空间大小 = 每个元素所占字节大小 * 行数 * 列数
连续性:数组的存储空间是连续的
有序性:数组存放数据顺序有序 将二维数组逐行从左到右存储
二维数组是由一维数组构成的一维数组
N维数组:是由N-1维数组构成的一维数组
5.二维数组的输入和输出
3.字符型数组:
在C语言中没有字符串类型,只能通过字符型数组存放字符串
1.数组的定义:
数据类型 数组名[元素个数];
char str[12];
注意:
1.字符型数组存放字符串,必须能够存放下末尾的\0字符
2.元素个数必须为常量
2.数组元素的访问:
数组名[下标];
3.数组元素的初始化
1.全部初始化:
char str[6] = {'h', 'e', 'l', 'l', 'o', '\0'};
char str[6] = {"hello"};
char str[6] = "hello";
2.局部初始化:
char str[6] = {'h', 'e', 'l'};
char str[6] = {"hel"};
char str[6] = "hel";
char str[6] = {0}; //对数组中所有元素清0
注意:
没有给定初值的元素被赋值为0('\0') ,不是'0'
3.默认初始化:
char str[] = {'h', 'e', 'l', 'l', 'o'};
char str[] = {"hello"};
char str[] = {"hel"}
注意:
初始化 != 赋值
char str[6] = {"hello"}; //对
char str[6];
str = "hello"; //错
str[6] = "hello"; //错
4.数组的存储:
char str[6] = {"hello"};
数组所占空间大小 = 元素个数
连续性:数组存放空间连续
有序性:按照顺序依次存放
5.字符串的输入和输出:
printf("%s\n", str);
puts(str);
按照字符串打印:从字符串开头到第一个\0中间的内容打印
scanf("%s", str);
无法接收带' '的字符串
gets(str);
可以接收带' '的字符串
6.字符串常见操作:
使用以下函数需要在最开始加上#include<string.h>
1.字符串的赋值(字符串的拷贝):
strcpy
字符串拷贝函数
用法:
strcpy(str, "hello world");
strcpy(str, src);
注意事项:
目的空间必须能够存放下拷贝的字符串,否则会内存越界
char str[32] = {"hello world"};
char str[32] = {0};
str = "hello world"; //错
strcpy(str, "hello world"); //对
2.字符串的拼接:
strcat
字符串拼接函数
用法:
strcat(str, "world");
strcat(str1, str2);
注意事项:
源字符串数组必须能够存放拼接后的字符串
3.字符串的比较:
strcmp
字符串比较函数
用法:
strcmp(str1, str2);
结果 > 0 str1 > str2
结果 < 0 str1 < str2
结果 == 0 str1 == str2
注意事项:
1.区分大小写
2.两个字符串到右依次比较,不相同的ASCII码值谁大,字符串谁就大
4.字符串的长度:
strlen
获得字符串的长度(从字符串开头到\0中间元素的个数)
用法:
int len;
len = strlen(str);
练习:
1.从终端获得一个字符串,
编写程序统计字符串长度(不能使用strlen)
2.从终端接收一个字符串,统计该字符串中大写、小写、数字和空格的个数