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.