可变长数组:
数组的长度可以是一个变量
int a[len]; //len是一个变量
//注意:
此时,数组不能初始化
插入排序:
(在有序的序列中),找到合适的位置插入 一个数
ACDB E
ACB
总结:
1.数组概念
2.数组定义
数组 -- 是一种数据类型
数组名 -- 数组的类型
数组首元素的地址
3.数组的特点
4.数组给值
初始化
赋值
数组不能整体赋值 ---数组元素的逐个赋值
5.可变长数组
不能初始化
6.算法
求极值 //max min second
找数
数组逆序
排序
选择
冒泡
插入
二分查找
一维字符型数组:
int a[10];
char s[10]; //
'a'
'b'
char s[10] = {'h','e','l','l','o'};//定义了一个字符型数组
字符型数组提供了可以批量处理多个字符的能力。
处理 字符串 (一串字符)
要求:
"hello" //字符串常量
本质上:
'h''e''l''l''o''\0' //'\0'--表示字符串结束 --结束的标志
"hello" "world"
输出字符串:
int puts(const char *s);
功能:
输出字符串
参数:
s //某个字符串所在内存空间的首地址
返回值:
int
输入字符串:
char * gets(char *s) //fgets
功能:
输入字符串
参数:
s //保存字符串所的在内存空间的首地址
返回值:
char * //其实就是存放字符串那个首地址
总结:
字符数组 --- 存储字符数据的一块内存空间
字符串 --- 具有某种含义的一串字符 --- 特点 "" 括起来的
'\0' 作为结束标志
"hello"
内存中的形式:
本质上:
'h''e''l''l''o''\0'
注意:
gets 和 scanf都可以输入字符串
scanf 不能完整接收 带空格的字符串
字符串的操作:
char s[] = "hello";
char s[10] = "hello";
sizeof(s) //数组的长度 = 6
//
"hello" //字符串的长度 --- 不包含'\0',之外的有效字符的个数
size_t strlen(const char *s);
功能: 统计字符串的长度
参数:
s //存放字符串的内存首地址
返回值:
字符串的长度
判断字符串的大小?
字符串比较的规则与其他语言中的规则相同,
即:
对两个字符串【自左至右】【逐个字符相比(按ASCII 码值大小比较)】,
直到出现不同的字符或遇到'\0' 为止。
停止位置处,谁的字符大 谁就大
char * strcpy(char *dest,const char *src)
功能:
将src中的数据,拷贝到dest中
参数:
@dest 拷贝到的目标字符串地址 //一块空间的首地址
@src 源字符串的首地址
返回值:
char *
代表的是 dest对应空间的地址
int strcmp(const char *s1,const char *s2)
功能:
比较字符串大小
参数:
@s1
@s2
进行比较的字符串
返回值:
1 s1 > s2
0 s1 == s2
-1 s2 < s2
char * strcat(char *dest,const char *src)
功能:
将src中的数据,拼接到dest中
参数:
@dest 拼接到的目标字符串地址 //一块空间的首地址
@src 源字符串的首地址
返回值:
char *
代表的是 dest对应空间的地址
//
字符串的一些函数:
1.gets
2.puts
3.strlen
4.strcpy
5.strcmp
6.strcat