//最初级的版本!#include #include #include void my_strcpy(char *dest, const char *src){ while (*src != '\0') { *dest = *src; dest++; src++; } *dest = *src;}int main(){ char arr[10]; const char *p = "abcdef"; my_strcpy(arr, p); printf("%s\n", arr); system("pause"); return 0;}// 缺点:1.没有判断dest,src指向的位置是否为空 2.程序冗长,逻辑不简练 3.dest做程序结束指向最后,没有什么意义! 4.无返回值,不利于链式访问函数。 //满分版#include #include #include char* my_strcpy(char *dest, const char *src){ assert(dest); //断言,只在debug环境下才能起作用,对程序员调试很有用哦 assert(src); char* ret = NULL; ret = dest; while (*ret++ = *src++) { ; } return dest;//设返回值有利于链式访问:例 strlen(strcpy(dest,stc));}int main(){ char arr[10]; const char *p = "abcdef"; char* ret = NULL; ret=my_strcpy(arr, p); printf("%s\n", ret); system("pause"); return 0;}