> The second one is absolutely trivial if you've ever read K&R (even if you're not allowed to just call strcpy())
The naive approach’s assumes you can iterate over the first string until it terminates.
It’s a bit trickier if you do not assume the memory regions cannot overlap.
See memcpy vs memmove: https://man7.org/linux/man-pages/man3/memmove.3.html