본문 바로가기
c언어/c언어

[c언어] strcnpy

by ilp 2025. 3. 2.
반응형

'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