char *myStrcpy(char *dest, const char *src)
{
if(dest == NULL || src == NULL)
return NULL;
char *res = dest;
while((*dest++ = *src++) != '\0');
return res;
}
char *myStrncpy(char *dest, const char *src, size_t n)
{
if(dest == NULL || src == NULL)
return NULL;
char *res = dest;
while(n--)
*dest++ == *src;
return res;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void *myMemcpy(void *dest, const void *src, size_t n)
{
char *pdest = NULL, *psrc = NULL;
if(dest == NULL || src == NULL)
return NULL;
if(dest < src && (char *)dest < (char *)src + n)//从后往前复制
{
pdest = (char *)dest + n - 1;
psrc = (char *)src +n - 1;
while(n--)
*pdest-- = *psrc--;
}
else//从前往后复制
{
pdest = (char *)dest;
psrc = (char *)src;
while(n--)
*pdest++ = *psrc++;
}
return dest;
}
int main()
{
int arr[] = {1, 4, 2, 0, 3, 7, 8};
char arr2[] = "1420378";
int buff[100] = {0};
char cbuff[100] = { 0 };
int arrlen = sizeof(arr) / sizeof(*arr);
int arr2len = strlen(arr2);
myMemcpy(arr + 2, arr, 1 * sizeof(int));
memcpy(buff, arr, arrlen * sizeof(int)); //库函数,长度需要乘上 类型的长度
myMemcpy(arr2 + 2, arr2, 1 * sizeof(char));
for (int i = 0; i < arrlen; i++)
printf("%d ", arr[i]);
printf("\n");
for (int i = 0; i < arrlen; i++)
printf("%d ", buff[i]);
printf("\n");
for (int i = 0; i < arr2len; i++)
printf("%d ", arr[i]);
system("pause");
return 0;
}