一、二分查找
- 思想 :本身是有序的,将数据分为一半,看自己在那一半,继续一半一半的分
- 时间复杂度 ;log2^n
- end 跑到 begin 之前,说明数据查找完了,不在空间里面
代码
二、字符数组
字符数组
作用 :是一个容器,来存放字符串的容器。
注意
初始化形式 有以下内容
- char s[100] = "HELLO"
- char s[100] = {"HELLO"}其他默认的数值为\0
- char s[100] = {‘H’,‘E’,‘L’,‘L’,‘O’}
三、字符数组输入输出
3.1 字符数组的输入
1、scanf 输入字符串,
scanf("%s",s);
2、gets() 返回值是一个指针,直接传数组的地址就行。
注意
- gets 函数在编译里面会有警告,认为不安全
- gets 输入输入的时候只管输入,但是不知道数组的长度,容易造成越界访问
- fgets() fgets 更加安全,会考虑数组的大小,输入的字符串,会自动加上\0
三者的区别
1、scanf 在里面空格是间隔符,两个字符的分割,由他会认为结束
2、gets 里面的空格认为是一个字符
3、fgets 会出现两个空格,自带换行符
3.2 字符数组的输出
1、puts 输出字符串
2、printf("%s",s) 输出字符串
四、字符串常用函数
4.1 strlen() 统计字符串有效字符长度
4.2 strcpy()
字符串拷贝 内存里面的两端空间,进行拷贝
- 参数要的是const char * 那么我们输出数组名来进行传参。
- 用strcpy 要注意分配的空间是源的 len +1。
4.3 strcat() 拼接字符串
- 长度至少是strlen(s1)+strlen(s2)+1
4.4 strcmp() 字符串比较
字符串比较的时候,从第一个字母进行比较,如果从头到尾比较,大小都一样,那么相等
- 字符串 s1 > s2 ,返回值 > 0,s1 = s2,返回值 = 0;s1 < s2 ,返回值 <0
- 字符串比较大小,不能用关系运算符