\0表示字符串结束
二分法查找:
用来存放字符数据的数组为字符数组,字符数组中的一个元素存放一个字符。
字符数组的定义:
但上述赋值方法过于繁琐,可简化为char c[10] = " I am happy";
注意:
1.如果在定义字符数组时不进行初始化,则数组中各元素的值是随机数的。
2.如果花括号中提供的初值个数(即字符个数)大于数组长度,则按语法错误处理。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即'0')。
3.通常用一个字符数组来存放一个字符串,字符串总是以’/0’作为串的结束符,因此当把一个字符串存入一个数组时,也把结束符‘/0’存入数组,并以此作为该字符串结束的标志。
4.在对字符串数组初始化时,我们必须预先为结束标志腾出一个字符空间。所以我们在定义字符数组时给的长度要足够大(>len),否则很容易出现越界访问的情况。
puts函数
对某一字符串数组进行遍历输出,并且换行。
有一个int型返回值,const char *s 是某个字符型变量的地址。
gets函数 gets不安全容易越界访问
返回值为指针
scanf函数传入字符串时,用%s 碰见回车 空格 tab就结束
scanf("%s",s)
fgets(...,5,stdin)自带换行符
strlen函数
使用strlen(有效字符)函数需要包含头文件string.h
两种方法统计字符中的有效字符
字符串拷贝 strcpy (目标,源)
不能使用赋值运算符
需要两个参数 :源往目标拷
目标在前 源在后
可以传递数组的数组名
一定保证目标数组内存足够大 至少strlen +1
连接字符串Strcat(目标,源)
内存最少需要 Strlen s1 + strlen 2 +1
字符串比较 Strcmp(数组数组名)
不能使用关系运算符
结果由函数返回值决定(返回整型 < = >0)
>0 s1 > s2
=0 s1 = s2
<0 s1 < s2
比较大小
s1>s2 比谁前谁后(地址)