Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>
Docbook 원문

strcpy(3)

1장. strcpy(3)

차례
1.1. 사용법
1.2. 설명
1.3. 반환값
1.4. 예제

문자열을 복사한다.


1.1. 사용법

#include <string.h>

char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n);
		


1.2. 설명

src 가 가르키는 문자열을 dest 가 가르키는 배열에 복사한다. src 에서 복사될때 '\0' 까지 복사됨으로 문자열이 겹쳐지지는 않는다. 이때 dest 는 src 를 모두 복사 받을수 있을정도로 충분히 커야 한다.

strcpy() 는 목적지의 배열의 크기가 충분히 크지 않을경우 어떤일이 발생될지 알수가 없다. 운이 좋으면 세그먼트폴트 에러와 함께 죽겠지만, 그렇지 않고 알수 없는 작동을 할수도 있다. 이는 흔히 말하는 버퍼 오버 플로우 크래커 기술에 매우 취약하다. strcpy() 를 쓰기전에는 반드시 복사할 문자열의 크기를 검사해주어야 한다. 또는 strncpy() 를 써야 한다.

strncpy()는 n을 이용해서 복사할 문자열의 크기를 정할 수 있으므로 버퍼 오버 플로우에 좀더 안전하다. 만약 src의 길이가 n 보다 작다면 dest의 남는 공간은null 로 채워진다.


1.3. 반환값

목적지 문자열 dest 에 대한 포인터를 반환한다.


1.4. 예제

#include <string.h>

int main()
{
    char buf[25];

    strcpy(buf, "hello world");
    printf("%s\n", buf);
    strncpy(buf, "hello world", 5);
    printf("%s\n", buf);
}
		

CategoryHomepage