Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C/C++ strcpy() 함수 완벽 가이드: 문자열 복사의 기본부터 예제까지

strcpy()는 표준 라이브러리 함수로, 한 문자열을 다른 문자열로 복사할 때 사용됩니다. C 언어에서는 string.h 헤더 파일에 선언되어 있고, C++에서는 cstring 헤더 파일에 선언되어 있습니다. 이 함수는 복사가 완료된 후 목적지(dest) 문자열의 포인터를 반환합니다.

strcpy() 함수의 문법

char* strcpy(char* dest, const char* src);
  • dest: 복사된 문자열이 저장될 목적지 버퍼입니다.
  • src: 복사할 원본 문자열입니다.

strcpy()의 주요 특징

  • 원본 문자열 전체를 목적지 문자열로 복사합니다. 기존 내용을 이어 붙이는(append) 방식이 아니라, 목적지의 내용을 완전히 대체(replace)합니다.
  • 복사 과정에서 원본(src) 문자열은 변경되지 않습니다.
  • 문자열 끝의 널 종료 문자(\0)까지 함께 복사됩니다.

주의: 목적지 버퍼(dest)는 원본 문자열과 널 종료 문자를 담을 만큼 충분히 커야 합니다. 그렇지 않으면 버퍼 오버플로우(buffer overflow)가 발생하여 프로그램이 비정상적으로 동작하거나 보안 취약점이 생길 수 있습니다.

C 언어에서의 strcpy() 예제

#include <stdio.h>
#include <string.h>
int main() {
    char s1[] = "Hello world!";
    char s2[] = "Welcome";
    printf("String s1 before: %s\n", s1);
    strcpy(s1, s2);
    printf("String s1 after: %s\n", s1);
    printf("String s2 : %s", s2);
    return 0;
}

실행 결과

String s1 before: Hello world!
String s1 after: Welcome
String s2 : Welcome

위 예제에서 strcpy(s1, s2)를 호출하면 s1의 기존 내용인 "Hello world!"가 사라지고, s2의 내용인 "Welcome"으로 완전히 교체됩니다. 반면 s2는 복사의 원본으로만 사용되었기 때문에 그대로 유지됩니다.