strcpy() 함수로 문자열 리터럴을 문자 배열에 저장
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()
함수는 다음과 같은 방식으로 동작합니다:
"C Language"
문자열의 첫 문자부터 시작하여, 한 글자씩buffer
에 복사합니다.- 마지막에는 널 종료 문자
'\0'
도 함께 복사하여 문자열이 정상적으로 끝났음을 표시합니다. - 이 함수는 문자 수 제한 없이 복사하므로, 대상 배열이 충분히 크지 않으면 버퍼 오버플로우 위험이 있습니다.
buffer
의 크기(80)는 문자열"C Language"
의 문자 수(9자) + 널 종료 문자'\0'
를 포함해 총 10바이트보다 충분히 크므로 이 예제에서는 안전하게 동작합니다.
실행 결과
C Language
buffer
배열에 복사된 문자열이 printf()
를 통해 출력됩니다.
요약
strcpy(dest, src)
는src
문자열을dest
배열에 복사하며, 널 종료 문자\0
까지 포함됩니다.dest
는 복사될 문자열보다 충분히 큰 메모리를 가져야 합니다.- 안전성 확보가 필요한 경우 C11 표준의
strcpy_s()
사용도 고려할 수 있습니다.
이처럼 strcpy()
는 문자열을 배열에 저장할 때 사용하는 기본적인 함수이며, 문자열 처리의 시작점으로 자주 활용됩니다.
추천 자료: ASP.NET Core 인증 및 권한 부여
추천 자료: .NET Blazor에 대해 알아보시겠어요? .NET Blazor 알아보기를 확인해보세요!