stdin에서 문자를 복사하는 기능을 이해하려고하지만 while 루프와 코드를 정확히 이해할 수는 없습니다 .....
while 루프는 어떻게합니까? 작업?? 내가 이해하는 바로는 ith
문자까지 to[]
은 ith
문자와 같지 않습니다. from[]
문자를 계속 추가 하시겠습니까? i
맞습니까?
예인 경우 두 변수에서 i 번째 문자가 어떻게 같습니까?간단한 C 복사 기능을 이해하려고 시도합니다
void copy(char to[] , char from[])
{
int i;
i = 0 ;
while ((to[i] = from[i]) != '\0')
++i;
}
문자열 복사본입니다. from의 i 번째 값을 from에 할당하고 있습니다. 그런 다음이 값이 "NUL"인지 아닌지 (즉, 문자열의 끝이 아님) 확인한 다음 i를 증가시키고 복사를 계속합니다. – Joe
"에서부터 [] **까지의 i 번째 문자가 **와 같지 않을 때까지를 의미합니다."-'='는'=='과 매우 다릅니다! –
nit-pick : 아마도이 함수를'void copy (char * to, const char * from)'로 바꾸는 것이 좋겠지 만 기존의 코드를 리팩터링해야 할 필요가 있지만 - int copy (char * to, const char * from, size_t max)'. 후자 함수는 오버플로를 피하고 복사 된 문자의 수를 반환합니다. –