C语言:字符串函数&内存函数

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:内存移动,考虑了内存重叠的情况

在这里插入图片描述

内存重叠:目的地址指向了要拷贝的内容导致覆盖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值