继续上一篇的算法,还有一个二分查找法。(左边先将数组进行排序,右边利用begin、end来完成二分法,再与需要查找的数进行比较)
一、字符数组
定义一个字符数组作为容器,用来装字符串。
字符串的长度一定要大于实际的字符个数,否则会产生越界访问。
可用字符串直接给数组赋值,在字符串末尾有'\0',为结束标志(通常作为循环的循环条件)。也可用函数 puts(s)。
例如:
输入字符串可有三种方法:
注意:(1)scanf中的空格作为间隔符来使用,后面的输入无效。
(2)gets 不安全,可能由于输入字符过多,导致越界访问。
(3)fgets函数原型:char * fgets(char * s, int size, FILE *stream)
注意:strlen(s)函数表示的是字符串数组中的有效字符个数;sizeof(s)为数组的总字节数。
二、字符串数组中所用到的算法
1、大小写转换
将字符串数组中的小写字母变为大写字母。
2、统计个数
分别统计字符串数组中数字、字母、其他字符的个数。
3、字符串拷贝(strcpy)
也可用strcpy函数,原型:char * strcpy(char *dest(目标) , const char *src(源))。
4、字符串连接(strcat)
也可用strcat函数。
5、字符串比较(strcmp)
也可用strcmp函数。s1 > s2,为正;s1 < s2,为负;s1 = s2,为0。
6、极值
字符串比较大小,求极值。用strcmp函数比较,strcpy函数拷贝,用puts函数输出。