[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함수를 더 많이 사용한다고 합니다.




© 2021.02. by kirim

Powered by kkrim