字符和字符串的库函数strcpy,strcat,strcmp,strncmp,strncat,strncmp,strtok,strstr,memcpy,memcmp.memset

文章目录


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

strlen,求字符串的长度,size_t

size_t是自己定义的一种类型,是已知类型的别名,具体要看头文件中是怎么定义的
在C语言中,size_t 是无符号整数类型,通常用于表示内存中对象的大小或索引。它的大小通常足以容纳系统中最大可能的对象大小。在不同系统中,size_t 的大小可能会有所不同,但它通常被设计为能够表示系统中最大可能的对象大小。
https://blog.csdn.net/qq_18671415/article/details/105989100
在这里插入图片描述

在这里插入图片描述

自己写的返回值为int,不严谨,要写成size_t

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

长度不受限制,不管目的地能不能放下,遇到’\0’才停止,不安全

strcpy(目的地,源) 字符串拷贝,把源拷贝到目的地,返回目的地的起始位置,会将源字符串的’\0’拷贝到目标空间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

dest++=src++会将src(即\0)复制到dest所指向的位置,然后递增src和dest的指针位置,指向字符串的下一个字符。
由于在这种情况下src为\0,这个字符会被复制到dest,然后递增操作符会发生,导致src和dest的指针位置都向后移动一位,然后while循环结束。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

strcat(目的地,源),字符串追加,在字符串后面追加一个字符串,从目的地的\0处开始追加,直到遇到源字符串的\0追加结束,源字符串\0也追加过去

找到目的地\0的位置,从这个位置开始向后追加。目标空间必须有\0
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自己实现

在这里插入图片描述

strcmp(str1,str2) 字符串比较,str1>str2返回大于0的一个数,str1==str2返回0,str1《str2返回小于0的一个数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

字符’\0’: ASCII 码为0,表示一个字符串结束的标志

在这里插入图片描述
在这里插入图片描述

长度受限制

strncpy(目的地,源,count)字符串拷贝。源的字符个数《count,多的补0,源的字符个数==count,就拷贝count个,不会把’\0’拷贝过去,源的字符个数》count,就拷贝count个。不够的补0,不拷贝’\0’

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

strncat(目的地,源),字符串最追加。找到目的地的’\0’,从这管理开始追加,源字符串》count,则追加count个字符,在额外追加一个’\0’,源字符串<=count,则追加源字符串的字符,并把源字符串的’\0’也追加进去

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

strncmp 字符串比较

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

strstr(p1,p2) 查找字符串,找子串,NULL,NUL,Null.在p1中找有没有p2这个字符串,有,返回第一次出现的位置,没有返回空指针

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自己实现

> 在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

优化一下
在这里插入图片描述

strtok(str,sep) 按指定字符分割。str是包含了0个或多个由sep中的0个或多个字符的串,然后按着标记分割

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

tech输出完,在查找就返回空指针了

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

strerror

在这里插入图片描述
在这里插入图片描述

errno

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

字符分类函数

iscntrl isspace isdigit islower isupper iscntrl issapce isalpha isalnum ispunct isgraph isprint

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

字符转换 tolower toupper

在这里插入图片描述

putchar打印字符

在这里插入图片描述
在这里插入图片描述

大写转小写
在这里插入图片描述

内存函数

memcpy 内存拷贝,放在内存中的数据都可以拷贝

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结构体中字符数组赋值
在这里插入图片描述
实现memcpy
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
memmove可以处理重叠也可以处理不重叠
在这里插入图片描述
在这里插入图片描述

实现memmove
dest在src前面,从前往后拷贝
在这里插入图片描述
dest在src和src+count之间,从后往前拷贝

在这里插入图片描述

dest在src之后,从后往前,从前往后都没有关系
在这里插入图片描述
vs使用memcpy发现可以处理重叠的内存 ,这是编译器优化了

在这里插入图片描述
在这里插入图片描述

自己实现memmove

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

memcmp

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

memset 内存设置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值