字符串和内存函数详解与模拟实现

目录

strlen 计算字符串长度

 strcpy 复制粘贴

Strncpy  

memcpy

menmove

strcat 追加

Strncat

strcmp 字符串比较

Strncmp

mencmp

 strstr

 strtok 分割​编辑

strerror 错误翻译

判断类型

字符转换


strlen 计算字符串长度

计算遇到\0之前的字符个数

  1. 所计算的字符串必须得有\0,不然停不下来
  2. 返回值是Size_t 是无符号类型

____________________________________________________________________________

 strcpy 复制粘贴

返回值为char*  这样能链式访问

Strncpy  

与之相比多了一个长度限制,不足的替换成\0

memcpy

 强制转换只是临时的,(char*)dest++  这样写不行

不能把12345拷贝到34567  会变成121212的

与strcpy差不多,不过可以任意类型,限制是字节数

menmove

比mencpy多了个能够拷贝重叠的功能,一般都使用menmove就行

___________________________________________________________________________

strcat 追加

最好不要自己给自己追加

跟strcpy差不多,起始位置变了,然后就是被追加的字符串也需要有\0

Strncat

多了个数限制   不过和 strncpy 不同的是如果只有3个,限制是5个,只会在3个追加完后补一个\0,而不是2个,有3个限制是2个,也是追加2个之后补一个\0

____________________________________________________________________________

strcmp 字符串比较

  

Strncmp

只比较前n个  ,同样也是多了个数限制

mencmp

与stecmp相比,能比较所有类型的

_____________________________________________________________________________ 

 strstr

在p1里找p2第一次出现的位置,返回这个地址,如果p1里没有p2,则返回空指针

另一种方法kmp算法,更快,但也复杂一些

____________________________________________________________________________

 strtok 分割

Strtok   分隔   例如   123*34 5**435*——》把要去掉的变成\0,一次去一个,去完返回去掉的字符的地址,如果该地址不为空指针,下次调用函数且参数是null时,继续上一次的位置开始

进阶用法,一次一次调用太麻烦

____________________________________________________________________________

strerror 错误翻译

Strerror  翻译错误码,出现错误时系统会给一个数到error变量中,但是这个不能打印

Perror   更加高级,翻译加打印,()里还能自定义

____________________________________________________________________________

判断类型

例如 isdigit(‘2’) 真返回非零,假返回零。。。。。等等

____________________________________________________________________________

字符转换

Tolower 把大写变小写,小写不变,另一个相反 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值