常用C语言字符串函数

简介:顾名思义,字符串函数是对字符串进行一系列操作处理函数。这里是对一些常用字符串函数的汇总,以及对这些函数的模拟实现。

一些需要知道的知识:

1.数组名是数组首元素的地址,在用数组定义字符串的时候,数组名表示的是字符串的首元素的地址。因此在对一个用数组储存的字符串用函数进行处理的时候,可以通过指针变量传递首元素的地址。但是如果传递数组到函数的时候用形参数组接受也是可以的!

2.assert(断言)可以在函数内部判断传递进来的指针是否是空指针,提升安全性,使用的时候需要包含<assert.h>头文件。

3.const char * arr——数组指针arr指向的值不能通过arr修改

  char * const arr——arr指针不能被修改,但是arr指向的值可以被修改

4.字符串的打印默认是找到'\0'就停止('\0'又被称为终止空字符)

......后续有新的函数要用到的基础知识也会在这里补充

strlen函数:

以下是中文文本:

可以知道strlen函数统计的是一个字符串在遇到'\0'之前字符的个数(注意:如果字符串中间有'\0'存在,那么会提前终止)以下是两个例子:

(字符串末尾会自动放一个'\0')

模拟实现:(这里提供两个方法,读者可以自行发挥)

1.

2.

strcpy函数:

以下是中文文本:

以下是溢出的例子,在VS2019环境下会曝出警告:

警告:

但是需要注意的是,如果没有溢出情况。需要注意将一个较短的字符串拷贝给一个较长的字符串的情况(由于终止字符('\0')也被拷贝过去了,而字符串的打印默认遇到'\0'终止):

注意这里的arr2只有前四个字符被改变了,后面的没有被改变

模拟实现:

strcat函数:

以下是中文文本:

这边需要注意的是目标数组应该足够大来容纳串联字符(防止溢出,这边就不再赘述了),stract是找到了目标数组的'\0'就开始连接(并一定是在字符串末尾进行连接),同时,目标字符串和源字符串不能相同。

目标和源相同的情况:



模拟实现:

......笔者后续若使用到新的函数便会归纳在这边文章中

笔者纯小白,尝试对一些基础的知识点进行总结。如果有错误,欢迎指正~~

蟹蟹!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值