#include <stdio.h>
void *my_memmove(void *dest, const void *src, size_t count)
{
void *ret = dest;
char *c_dest = (char*)dest;
char *c_src = (char*)src;
if((dest == NULL) || (src == NULL)) {
return NULL;
}
if(c_dest <= c_src) {
while(count--) {
*c_dest++ = *c_src++;
}
} else {
c_dest += count - 1;
c_src += count - 1;
while(count--) {
*c_dest-- = *c_src--;
}
}
return ret;
}
int main(void)
{
char a[] = "abcdefgh";
printf("%s\n", a);
printf("%s\n", my_memmove(&a[2], a, 3));
printf("%s\n", a);
return 0;
}
#include <stdio.h>
char * strcpy(char *dst,const char *src)
{
char *ret = dst;
if((dst == NULL) || (src == NULL)) {
return NULL;
}
while ((*dst++ = *src++) != '\0');
return ret;
}
int main(void)
{
char a[10] = {0};
printf("%s\n", strcpy(a, "abcd"));
return 0;
}