strcpy() 함수로 문자열 리터럴을 문자 배열에 저장

  • 2 minutes to read

C 언어에서 문자열 리터럴을 문자 배열에 복사할 때는 strcpy() 함수를 사용할 수 있습니다. 이 함수는 <string.h> 헤더에 정의되어 있으며, 문자열을 널 종료 문자('\0')를 포함하여 복사합니다.

함수 이름인 strcpy는 "string copy"의 줄임말로, 문자열(string)을 복사(copy)한다는 기능을 그대로 표현한 명칭입니다. 이름의 의미를 이해하면 쉽게 기억할 수 있습니다.

강의

코드: char_array_strcpy.c

// char_array_strcpy.c
#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
#include <string.h> // strcpy 사용을 위한 헤더 파일

int main(void)
{
    char buffer[80];

    // strcpy() 함수로 문자열 리터럴을 문자 배열에 저장 
    strcpy(buffer, "C Language");

    printf("%s\n", buffer); // "C Language"

    return 0;
}

strcpy() 함수 설명

strcpy(buffer, "C Language");

이 코드는 문자열 리터럴 "C Language"char buffer[80] 배열에 복사합니다.

  • buffer: 문자열이 복사될 대상 배열 (destination)
  • "C Language": 복사할 원본 문자열 (source)

strcpy() 함수는 다음과 같은 방식으로 동작합니다:

  1. "C Language" 문자열의 첫 문자부터 시작하여, 한 글자씩 buffer에 복사합니다.
  2. 마지막에는 널 종료 문자 '\0' 도 함께 복사하여 문자열이 정상적으로 끝났음을 표시합니다.
  3. 이 함수는 문자 수 제한 없이 복사하므로, 대상 배열이 충분히 크지 않으면 버퍼 오버플로우 위험이 있습니다.

buffer의 크기(80)는 문자열 "C Language"의 문자 수(9자) + 널 종료 문자 '\0'를 포함해 총 10바이트보다 충분히 크므로 이 예제에서는 안전하게 동작합니다.

실행 결과

C Language

buffer 배열에 복사된 문자열이 printf()를 통해 출력됩니다.

요약

  • strcpy(dest, src)src 문자열을 dest 배열에 복사하며, 널 종료 문자 \0까지 포함됩니다.
  • dest는 복사될 문자열보다 충분히 큰 메모리를 가져야 합니다.
  • 안전성 확보가 필요한 경우 C11 표준의 strcpy_s() 사용도 고려할 수 있습니다.

이처럼 strcpy()는 문자열을 배열에 저장할 때 사용하는 기본적인 함수이며, 문자열 처리의 시작점으로 자주 활용됩니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com