- 求字符串长度
- strlen
- 长度不受限制的字符串函数
- strcpy
- strcat
- trcmp
- 长度受限制的字符串函数介绍
- strncpy
- strncat
- strncmp
- 字符串查找
- strstr
- strtok
- 错误信息报告
- strerror
- 不幸的gets函数和升级版的fgets函数
- puts函数和fputs函数
- 缓冲区
- 结束键盘,文件,流输入
首先我们先来学习一下strlen函数
- strlen
- 1.字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包 含 '\0' )。
- 2.参数指向的字符串必须要以 '\0' 结束。所以如果我们没有遇到\0,strlen会一直检索直到遇到\0
- 上述我们看到计算的值为60,是因为我们strlen函数在计算arr数组时没有遇到\0,所以产生了随机值60,那么我们看下内存是否存放了\0
- 3.注意函数的返回值为size_t,是无符号的( 易错 )
- 我们看看上述答案是多少呢,是第一个选择还是第二个选择呢?
答案是第二个选项
- 4.学会strlen函数的模拟实现(下图是模拟实现思路)
strcpy
1.源字符串必须以 '\0' 结束。
想一想为什么出现这种现象(非法访问?)
答案是因为这个函数的实现就必须是用'\0'结束,这里arr2的空间里不 知 道'\0'在哪,所以在拷贝的时候会出现bug,具体我们看下面的模拟 实现内容就明白了。
2.会将源字符串中的 '\0' 拷贝到目标空间。
我们看看是否strcpy函数会把'\0'拷贝到目标空间???