안녕하세요. 조교 이은헌입니다.
책에 있는 copy 함수는 문자열을 다른 문자열에 복사하는 함수입니다.
void copy(char to[], char from[])
{
int i;
i = 0;
while((to[i] = from[i]) != '\0')
++i;
}
from이라는 문자열에서 to라는 배열에 문자열을 복사하는 것이지요.
예를 들어 from이라는 문자열에 "TEST"라는 문자열이 저장되었다고 가정해보겠습니다.
그렇다면 실제로 from안에는
TEST\0
이렇게 저장이 되어있습니다. 문자열의 마지막 문자 뒤에는 '\0'이 들어가서 이 문자열이 끝남을 알려주기 때문이죠.
그래서 while문을 보면 to[i] = from[i]를 해주는 것으로 from에 있던 문자를 하나 하나씩 to에 입력해주게 됩니다.
그러면 from[0]에 있는T
from[1]에 있는 E
from[2]에 있는 S
from[3]에 있는 T를 하나씩 to에 복사하고,
마지막에 from[4]에 있는 '\0'를 복사하면 while의 조건이 어긋나게 되겠지요.
그러면 반복문을 빠져나가고 함수가 종료되게 됩니다.
그 결과 to에는 from에 있는 것과 같은 "TEST\0"이 저장되게 될 것입니다.