strcpy模拟实现
strcpy:
- 源字符串必须以’\0’结束。
- 会将源字符串中的’\0’拷贝到目标文件。
- 目标空间必须足够大,以确保能存放源字符串。
- 目标空间必须可变。
#include <stdio.h>
char my_strcpy(char*arr, char*arr2, int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
arr[i] = arr2[i];
}
return 0;
}
int main()
{
char arr[20] = { 0 };
char arr2[] = "hehe";
int sz = sizeof(arr2) / sizeof(arr2[0]);
printf("%d\n", sz);
my_strcpy(arr, arr2, sz);
printf("%s", arr);
return 0;
}
strcpy的递归实现:
#include <stdio.h>
#include <assert.h>
char* my_strcpy( char*arr1,const char*arr2)//const表示文件不可变
{
char*ret = arr1;
assert(arr1 != NULL);//断言,检验条件是否为真
assert(arr2 != NULL);
while (*arr1++ = *arr2++)
{
;
}
return ret;
}
int main()
{
char arr1[20] = { 0 };
char arr2[20] = "abcdef";
char* ret=my_strcpy(arr1, arr2);
printf("%s", ret);
return 0;
}