10.2.5 strcat函数

1.strcat函数

我们再来看这个strcat函数.当然cat不是猫的意思,而是catanate(或者coalition?存疑),连接的意思.

我们实际做的事情是什么呢:

只不过拷贝不是从dst[0]开始,而是从dst[strlen(dst)]开始的,即从dst结尾的0开始.因为数组是从0开始的,所以我们不用额外加1.

2.安全问题

如果我们自己写个那个代码就会知道,我们没有任何办法知道那个dst的空间是多少,所以我们是盲目地往里面去填东西的,越界了也不知道,写到别人那去也不知道. 所以这两个函数是不安全的.

那用什么?我们有安全的版本.

函数名在中间多了一个n.在参数表多了一个n.n对于strcpy来说,你最多能拷贝过去多少个字符,对于strcat来说,你能够cat连接上多少个字符.也就是说我们可以通过这个方式告诉这两个安全版本的函数你最多只能拷贝过去这么多东西,如果多了怎么办,掐掉.因此它是安全的,不会越界.对于strcmp我们也有一个带n的版本, 但是这个n不是为了安全,而是说有时候我们想比较两个字符串的前面n个字符是否相等,如是否前面三个字符都是abc,如果是的话就返回0,大于就返回1,小于返回-1.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值