#include<stdio.h>
#include<windows.h>
void *my_memcpy(void *arr1,const void *arr,size_t count)
{
void *ret=arr1;
while (count--)
{
*(char*)arr1 =*(char*) arr;
arr1 = (char*)arr1 + 1;
arr = (char*)arr + 1;
}
return ret;
}
int main()
{
char arr[32] = "abcde";
char arr1[32] = { 0 };
int num = 3;
char *str=my_memcpy(arr1, arr,num);
printf("%s\n",str);
system("pause");
return 0;
}
函数算法思想:
用两个数组分别表示两个字符串,一个为空,一个为“abcde”,定义两个void*型的指针,void *arr1,void *arr,再定义一个size_t count,来表示需要拷贝的位数,本例中用的三位。
然后使用while拷贝三位,用count作为判断条件,当count为0的时候,退出循环,再将得到的字符串打印出来。