편집 : 예제에 대한 소스를 추가했습니다.
내가 건너 온 이 예 :
char source[MAX] = "123456789";
char source1[MAX] = "123456789";
char destination[MAX] = "abcdefg";
char destination1[MAX] = "abcdefg";
char *return_string;
int index = 5;
/* This is how strcpy works */
printf("destination is originally = '%s'\n", destination);
return_string = strcpy(destination, source);
printf("after strcpy, dest becomes '%s'\n\n", destination);
/* This is how strncpy works */
printf( "destination1 is originally = '%s'\n", destination1 );
return_string = strncpy( destination1, source1, index );
printf( "After strncpy, destination1 becomes '%s'\n", destination1 );
이 출력은 다음과 같습니다.
목적지는 원래 = 'abcdefg' strcpy 이후 목적지는 '123456789'가됩니다. destination1은 원래 = 'abcdefg'입니다. strncpy 이후 destination1은 '12345fg'가됩니다.
왜 누군가가이 효과를 원하는지 궁금합니다. 혼란 스러울 것 같습니다. 이 프로그램은 기본적으로 Tom Bro763을 사용하여 누군가의 이름 (예 : Tom Brokaw)을 복사 할 수 있다고 생각하게합니다.
strncpy()
over 사용의 장점은 무엇입니까strcpy()
?
strcpy
대신 왜 도대체 누가 사용strncpy
하겠습니까?"