strlen的使用和模拟实现
strlen函数用来求字符串长度
首先我们要知道strlen返回的值是在字符串中 '\0' 前⾯出现的字符个数(不包含 '\0' ),其次strlen的使用需要包含头文件。
size_t 类型表示C中任何对象所能达到的最大长度,它是无符号整数。
*str代表传入一个数组。
我们将要想求长度的数组输入进去,用指针的形式进行接收,然后通过while循环求值。因为数组的末尾为\0,所以当*p的值等于\0时就代表*p已经到达数组的末尾。while循环每循环一次就让p的地址++一下,同时创造个变量来记录循环次数,最后返回记录的次数即可得到长度。
strcpy的使用和模拟实现
strcpy函数用于拷贝,将source的内容拷贝到destination。
注意:⽬标空间必须⾜够⼤,以确保能存放源字符串,且⽬标空间必须可修改。
把要目标的数组和要拷贝的数组 传入函数,先用ret记录下p1的地址,等下作为返回值。(如果p1作为返回值的话,p1经过循环后,p1的首地址已经不是刚传入时的地址了,会导致后面打印不出数组)。
assert是保证p1以及p2不为空指针。
*p1++ = *p2++的计算方式是:后置++所以先把*p2的值赋给*p1然后进行++。当赋值到最后一位时(即*p2次时等于\0)循环就会终止,因为是先赋值后判断所以当*p2把\0赋值给*p1是就会自动停止。(\o在ascll表中的值为0)
strcat 的使用和模拟实现
strcat函数用于把src里面的内容拷贝到dest的后面。
例如:
结果是:
其实这个和strcpy函数差不多,都要注意⽬标空间必须⾜够⼤,以确保能存放源字符串,且⽬标空间必须可修改。
这个函数可以在strcpy函数的基础上进行修改。
首先我们要先找到arr1地址的\0的位置,然后从\0的位置开始进行复制。也就是说我们只要找出arr1数组的\0然后就和strcpy函数的操作步骤一样了。
只需要在前面加个while循环让p1走到\0的位置,然后进行拷贝就行
strcmp 的使用和模拟实现
strcmp函数用来比较大小。