[C]strcpy
strcpy함수는 문자열을 복사해주는 함수 입니다.
1️⃣ 함수원형
< strcpy >
char *strcpy(char *dst, const char *src)
2️⃣ 헤더파일, 반환값
반환값 : 복사한 문자열(char*)
헤더파일 : <string.h>
3️⃣ 함수구현
< 포인터로 구현 >
char *strcpy(char *dst, const char *src)
{
char *temp;
temp = dst;
while (*src != '\0')
*temp++ = *src++;
*temp = '\0'
return (dst);
}
< 배열로 구현 >
char *strcpy(char *dst, const char *src)
{
size_t i;
i = 0;
while (src[i] != '\0')
{
dst[i] = src[i];
i++;
}
dst[i] = '\0';
return (dst);
}
4️⃣ 특징 & 주의사항
- dst의 크기가 src보다 작을시 메모리를 초과할 위험이 있습니다.
- 반환값이 복사된 문자열이기 때문에 오류발생시 알아차리기가 쉽지않습니다.
- 안전하게 strcpy_s(C11부터 지원), strncpy, strlcpy함수를 이용하는 것이 좋을 수도 있습니다(여전히 위험하긴함).
- 하지만 안전을 보장할 수 있는 곳에서는 여전히 strcpy함수를 더 많이 사용한다고 합니다.