strcpy函数的定义:
strcpy函数功能的解释:
会将源字符串中的 内容包括'\0' 拷贝到目标数组,所以源字符串必须以 '\0' 结束。
返回值为拷贝完成后的目标数组的首地址。
Const 是因为源字符串的内容不需要被修改,所以const最好。
strcpy函数的演示:
arr1数组的内容前后变化:
拷贝前:
拷贝后:
结果展示:
strcpy的模拟实现:(容易理解的版本)
理解要点:
1,模拟函数的定义要按照strcpy的函数定义来。
2,因为strcpy返回值为拷贝后的目的数组的首地址,所以在这里进行一次首地址的保留,因为之后首地址会改变(char* start = dest;)
3,源字符串第一个元素不是 \0 ,就进入循环,然后进行赋值,赋值完成后,地址双双往后移。
4,进行最后一步 \0 的赋值。
strcpy的模拟实现:(最简单且严谨的版本)
优点:
1,断言语句起到严谨的作用,先判断是不是空指针在考虑是否进入下一步。
2,while语句先进行赋值(不管是不是\0,因为\0也需要赋值),然后判断赋值的结果是不是\0,因为\0 的ascll码值就是0(如果是的话,已经把\0赋值成功了,并且退出循环),然后进行后置的++,一气呵成。
3,循环体为一个空语句即可。