strncpy 함수는 문자열을 복사할 때 문자의 수를 지정할 수 있습니다. 예를 들어 문자열 " apple-pie"의 앞에서 5개의 문자만 char 배열 str에 복사한다면 다음과 같이 사용합니다.
strncpy(str, "apple-pie", 5);
// strncpy 함수를 사용한 문자열 복사
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[20] = "mango tree"; // 배열 초기화
strncpy(str, "apple-pie", 5); // "apple-pie"에서 다섯 문자만 복사
print("%s\n", str); // 복사 받은 문자열 출력
return 0;
}
실행결과에서 확인할 수 있듯이 strrncpy 함수는 복사할 문자열에서 지정한 개수만큼 문자를 복사하고 널 문자는 저장하지 않습니다. 따라서 str 배열에서 mango만 apple로 바뀌므로 결국 str 배열에 저장된 문자열은 "apple tree"가 됩니다. 만약 str 배열이 문자열 "apple"로만 쓰이도록 하려면 apple을 복사한 후에 널 문자를 별독로 저장해야 합니다.
str[5] = '\0';
'프로그래밍언어 > C 언어' 카테고리의 다른 글
[혼자 공부하는 C언어] 문자열 길이를 계산하는 strlen 함수 (0) | 2022.12.10 |
---|---|
[혼자 공부하는 C 언어] 문자열을 붙이는 strcat, strncat 함수 (0) | 2022.12.10 |
[C언어] 문자열을 대입하는 strcpy 함수 (0) | 2022.12.10 |
[C 언어] 문자열을 출력하는 puts와 fputs 함수 (0) | 2022.12.10 |
[C 언어] 표준 입력 함수의 버퍼 공유 문제 (0) | 2022.12.10 |