Я рассматривал возможный метод реализации библиотечной функции strcpy. Это:
strcpy
void strcpy(char *src, char *dest) { while (*dest++ = *src++) ; }
Как это может работать без проверки '\0' ??
'\0'
Результатом *dest++ = *src++ является значение *src до приращения src. Если это значение \0, цикл завершается.
*dest++ = *src++
*src
src
\0