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
]$
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
C언어 strcmp 함수 문자열 비교 (0) | 2020.03.11 |
---|---|
C언어 strcpy 함수 문자열 복사 (2) | 2020.03.10 |
C언어 strncasecmp 함수 대소문자 무시하고 지정한 길이만큼 문자열 비교 (0) | 2020.03.10 |