반응형
'strcnpy' 함수
- c언어의 표준 라이브럴리중 하나인 '<string.h>'에 정의 되어 있다.
- 한 문자열을 다른 문자열로 복사할 때 사용된다.
'strcpy'와 비슷하지만, 복사할 문자수를 지정할 수 있는 차이가 있다.
👇 함수의 원형
char *strncpy(char *dest, const char *src, size_t n);
- dest: 목적지 문자열의 포인터이다. 복사된 내용이 저장될 곳이다.
- src: 소스 문자열의 포이터이다. 이 문자열의 내용이 목적지 문바열로 복사된다.
- n: 최대 복사할 문자 수이다. 이 값에 따라 'src'에서 'dest'로 복사되는 문자의 수가 결정되낟.
주요 사용법, 주의점
1. 복사할 길이 지정:
- 'n' 매개 변수를 통해 복사할 최대 길이를 지정할 수 있다.
- 버퍼 오버플로우를 방지하는데 중요하다.
2. 널 종료 문자 주의:
- 'strncpy'는 'n'길이만큼 복사를 시도한다.
- 만약 'src'의 길이가 'n'보다 작고, 복사 과정에서 널 문자를 만나지 못하면
'dest'는 널로 종료되지 않은 상태가 될 수 있다.
3. 널 패딩:
- 'src'의 실제 길이가 'n'보다 짧으면, 'strncpy'는 'dest'의 나머지 부부은 널로 채운다.
- 이는 'dest'가 항상 널로 종료될 것을 보장한다.
👇 예제 코드
#include <stdio.h>
#include <string.h>
int main() {
char src[10] = "Hello";
char dest[10];
strncpy(dest, src, sizeof(dest));
dest[9] = '\0'; // 확실한 널 종료 보장
printf("복사된 문자열: %s\n", dest);
return 0;
}
- 'src'에서 'dest'로 최대 10자를 복사한다.
끝
반응형
'c언어 > c언어' 카테고리의 다른 글
[c언어] typedef (0) | 2025.03.02 |
---|---|
[c언어] strcpy (0) | 2025.03.02 |
[c언어] 함수 (4) | 2024.07.02 |
[c언어] '%s'와 '%[n]s' (0) | 2024.06.08 |
[c언어] strcmp (2) | 2024.05.31 |