这里写目录标题
strlen:计算字符串的有效长度(不包括\0),遇见\0计数停止
- 返回值是size_t
两个strlen函数计算出的结果相减,永远是正数
长度不受限的字符串函数
strcpy,字符串拷贝 | 需要拷贝\0 | 返回值是char*类型 |
---|---|---|
目标空间必须足够大,也可修改 | ||
源字符串必须有\0 | ||
strcat,字符串追加 | \0也会追加 | 目标空间必须足够大 |
源字符串必须有\0 | ||
不能自己给自己追加 | ||
strcmp字符串比较 | 比较字符ASCII值 | 返回值是int类型 |
返回值>0,第一个字符串 > 第二个 | ||
\0也是字符串 |
长度受限的字符串函数
strncpy,第三次数是拷贝字符个数
- strcpy在拷贝时,目的空间明显不够,还依旧拷贝会导致程序崩溃
注:- 源空间字符串长度小于目的空间长度,多余的部分将用\0补满
strncat,第三个参数是追加字符串个数
- 从目的空间的\0处开始追加,追加完成后并自动补一个\0
strstr:
- 查找子串,子串不存在返回空指针
char * strstr ( const char *, const char * )
strtok:
- 从左边第一个不是分隔符的地方开始分割,
与分隔符顺序无关
char * strtok( char * str, const char * sep );
strerror:
- 发生错误时,将错误信息用字符串形式以字符串形式打印
需要引入该头文件:#include<errno.h>
printf(“%s”, strerror(errno));
mem内存函数
与类型无关
size_t count:需要操作的字节数
均以字节位单位进行拷贝,实现时要全部转化为char*类型,逐字节操作
memcpy:不考虑内存重叠
- void* memcpy(void* dest, const void* scr, size_t count)
memset:初始化函数
- void* memset(void* dest, int c, size_t count)
dest:待初始化空间的起始地址
c:初始化值
size_t count:修改的字节个数
memcmp:内存比较函数
- int memcmp(const void* buf1, const void* buf2, size_t count)
- buf1 > buf2 返回大于0的值,相等返回0
size_t count:所要比较的字节个数
memmove:内存移动,考虑了内存重叠的情况
内存重叠:目的地址指向了要拷贝的内容导致覆盖