본문으로 바로가기
homeimage
  1. Home
  2. 컴퓨터/프로그래밍
  3. C언어 strncpy 함수 지정한 개수 만큼 문자열 복사

C언어 strncpy 함수 지정한 개수 만큼 문자열 복사

· 댓글개 · 바다야크

C strncpy() 지정한 개수 만큼 문자열 복사 함수

strncpy는 문자열을 지정한 길이만큼 복사합니다.

  • 헤더: string.h
  • 형태: char * strncpy( char *dest, const char *src, size_t n);
  • 인수: char *dest 복사할 위치
    char *src 원본 문자열
    size_t n 문자열에서 복사할 길이
  • 반환: 복사한 문자열을 반환

strcpy() 보다 안전한 문자열 복사 함수이지만, 큰 차이점이 있으므로 매우 주의해야 합니다. strcpy()는 원본 문자열의 NULL문자까지 복사해 주지만, strncpy()는 지정한 길이만큼만 복사합니다. 만일 복사 길이가 원본 문자열에서 NULL까지 포함하지 않으면 복사 버퍼에는 NULL 문자가 없는 문자열이 될 수 있습니다. 즉, 복사 대상 포이터는 NULL로 끝나지 않는 문자열이 될 수 있어서 위험한 코드가 될 수 있습니다. 그러므로 strncpy() 실행하기 전에 복사 대상 버퍼를 NULL로 초기화하고, 복사 버퍼 크기보다 하나 작은 길이로 복사해야 안전합니다. 또는 snprintf() 함수를 사용하세요.

C언어 strncpy() 함수 예제

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

int main( void)
{
   char  str_buffer[50];
   char *ptr;
  
   ptr = strncpy( str_buffer, "badayak", 7);
   printf( "%s\n", str_buffer);
   printf( "%s\n", ptr);

   return 0;
}

C언어 strncpy() 예제 실행 결과

]$ ./a.out
badayak
badayak
]$
SNS 공유하기
💬 댓글 개
최근글
이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.