[strcpy 함수의 사용 예제]
아래의 코드를 보고 결과를 예측해보자.
#include <stdio.h>
void main()
{
char ori_arr[] = "ABCDEFG";
char cpy_arr[] = "AAA";
strcpy(ori_arr, cpy_arr);
printf("%s", ori_arr);
return 0;
}
[실행 결과]
AAA
[예측]
코드를 보면 ori_arr이 cpy_arr보다 길이가 더 긴 물자열이다.
따라서 저렇게 복사하면 "AAADEFG"이 나올 것으로 예측하기 쉽다.
[결론]
strcpy는 문자열의 끝('\0')까지 복사를 한다.
strcpy 함수를 통해서 ori_arr에 cpy_arr을 복사하게 되면, ori_arr은 메모리 상에서 아래와 같이 된다.
"AAA\0EFG\0"
즉, strcpy 함수를 통해서 배열의 끝인 \0까지 복사가 되었기 때문에, ori_arr의 3번째 인덱스에 '\0'이 존재하게 된다.
그러므로 ori_arr의 문자열은 "AAA\0"까지 인식하게 되어서 printf 함수를 사용하게 되면 AAA만 출력되는 것이다.
<참고>
https://blockdmask.tistory.com/348
'프로그래밍 언어 개념 > C' 카테고리의 다른 글
구조체 패딩(struct padding) (1) | 2023.12.08 |
---|---|
[C언어] 함수의 정의 (0) | 2023.11.23 |
[C언어] static 변수 (0) | 2021.12.26 |
[C언어] 지역변수와 전역변수 (0) | 2021.12.23 |