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()는 문자열을 배열에 저장할 때 사용하는 기본적인 함수이며, 문자열 처리의 시작점으로 자주 활용됩니다.

더 깊이 공부하고 싶다면
DevLec에서는 실무 중심의 C#, .NET, ASP.NET Core, Blazor, 데이터 액세스 강좌를 단계별로 제공합니다. 현재 수강 가능한 강좌 외에도 더 많은 과정이 준비되어 있습니다.
DevLec.com에서 자세한 커리큘럼을 확인해 보세요.
DevLec 공식 강의
C# Programming
C# 프로그래밍 입문
프로그래밍을 처음 시작하는 입문자를 위한 C# 기본기 완성 과정입니다.
ASP.NET Core 10.0
ASP.NET Core 10.0 시작하기 MVC Fundamentals Part 1 MVC Fundamentals Part 2
웹 애플리케이션의 구조와 MVC 패턴을 ASP.NET Core로 실습하며 익힐 수 있습니다.
Blazor Server
풀스택 웹개발자 과정 Part 1 풀스택 웹개발자 과정 Part 2 풀스택 웹개발자 과정 Part 3
실무에서 바로 활용 가능한 Blazor Server 기반 관리자·포털 프로젝트를 만들어 봅니다.
Data & APIs
Entity Framework Core 시작하기 ADO.NET Fundamentals Blazor Server Fundamentals Minimal APIs
데이터 액세스와 Web API를 함께 이해하면 실무 .NET 백엔드 개발에 큰 도움이 됩니다.
VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com