字符串函数详解
函数介绍
本章重点
- 求字符串长度
- strlen
- 长度不受限制的字符串函数
- strcpy
- strcat
- strcmp
- 长度受限制的字符串函数介绍
- strncpy
- strncat
- strncmp
- 字符串查找
- strstr
- strtok
- 错误信息报告
- strerror
- 内存操作函数
- memcpy
- memmove
- memset
- memcmp
strlen
- size_t strlen(const char* str);
- 字符串以‘\0‘作为结束标志,strlen函数返回的是在字符串’\0‘前面出现的字符个数(不包含’\0’)
- 参数指向的字符串必须要以’\0’结束
- 注意strlen返回类型是size_t 为无符号数(易错)
strcpy 字符串拷贝
- strcpy模拟实现
- 循环的优化
- 错误示范
strcat 字符串追加
- 源字符串必须以\0结束
- 目标空间必须足够大,能够容下源字符串的内容
- 目标空间必须可修改
- 字符串自己给自己追加,如何??
- strcat模拟实现
strcmp 比较字符串的大小
- strcmp模拟实现
strncpy 拷贝字符串 只能拷贝字符串 其他都不能拷贝
strtok的用法
- 第一个参数指定一个字符串,它包含了0个或多个由sep字符中的一个或者多个分隔符分割的标记
- strtok函数找到str中的下一个标记,并将其用\0结尾,返回一个指定这个标记的指针(注意:strtiok函数会改变被操作的字符串,所以在使用strtok函数分割的字符串一般都是临时拷贝的内容可以被修改)
- strtok函数的第一个参数部位NULL,函数将找到str中第一个标记,strtok函数将保存它在字符串中的位置
- strtok函数的第一个参数为NULL,函数将在同一个字符串中被保存的位置开始,查找下一个标记
- 如果字符串中不存在更多的标记,则返回NULL指针
strerror错误函数
* 将错误码翻译为错误信息
转换字符函数
内存函数
memcpy内存拷贝函数
memcpy模拟实现
menmove拷贝重叠拷贝
- c语言标准:
- mencpy只处理不重叠内存拷贝
- menmove处理重叠的内存拷贝
memmove的重叠拷贝的模拟实现
- 当dest(末位置)>src(初位置) 那就从前向后拷贝
- 当dest(末位置)<src(初位置) 那就从后向前拷贝