본문 바로가기
카테고리 없음

문자열 복사하기 strcpy, strncpy 함수 사용법 & 예제 + 구현

by nono22 2023. 11. 25.

strcpy, strncpy 함수 사용법 & 예제

"strcpy" 및 "strncpy"는 C 언어에서 문자열을 복사하는 함수입니다. 두 함수는 문자열을 다른 문자열로 복사하는데 사용됩니다. 그러나 이 두 함수는 다른 방식으로 작동하며, 각각의 특성에 따라 다른 상황에 적합합니다.

strcpy 함수

strcpy 함수는 원본 문자열의 끝에 NULL 문자가 나올 때까지 모든 문자를 다른 문자열로 복사합니다. 따라서 원본 문자열의 크기와 상관없이 전체 문자열이 복사됩니다.

사용법

char *strcpy(char *destination, const char *source);
  • destination: 복사된 문자열을 저장할 목표 버퍼의 포인터입니다.
  • source: 복사할 원본 문자열의 포인터입니다.

예제

#include <stdio.h>
#include <string.h>

int main() {
    char source[] = "Hello, world!";
    char destination[20];

    strcpy(destination, source);

    printf("복사된 문자열: %s\n", destination);

    return 0;
}

출력 결과:

복사된 문자열: Hello, world!

strncpy 함수

strncpy 함수는 복사할 문자의 최대 개수를 지정할 수 있습니다. 원본 문자열의 끝에 NULL 문자가 나오기 전에 이 지정된 최대 개수까지만 문자를 복사합니다. 그러나 만약 원본 문자열보다 짧은 길이를 가진 문자열을 목표 버퍼에 복사하고자 할 때는 목표 버퍼 끝에 NULL 문자를 추가해야 합니다.

사용법

char *strncpy(char *destination, const char *source, size_t num);
  • destination: 복사된 문자열을 저장할 목표 버퍼의 포인터입니다.
  • source: 복사할 원본 문자열의 포인터입니다.
  • num: 복사할 최대 문자 개수입니다.

예제

#include <stdio.h>
#include <string.h>

int main() {
    char source[] = "Hello, world!";
    char destination[20];

    strncpy(destination, source, sizeof(destination));
    destination[sizeof(destination) - 1] = '\0';

    printf("복사된 문자열: %s\n", destination);

    return 0;
}

출력 결과:

복사된 문자열: Hello, world!

요약

  • strcpy는 원본 문자열 전체를 복사하고, strncpy는 지정된 최대 문자 개수만큼 복사합니다.
  • strncpy를 사용할 때에는 복사된 문자열의 끝에 NULL 문자를 추가해야 합니다.
  • strncpy로 복사한 문자열이 목표 버퍼 크기보다 짧다면 NULL 문자를 직접 추가해야 합니다.

댓글