반응형
strncpy는 입력받은 n개의 수만큼 문자열을 복사하여 붙여 넣는 것을 뜻합니다. 이때, 복사할 공간의 크기가 충분해야 합니다. sting.h에 선언이 되어있습니다.
한번 사용해 보겠습니다.
#include <stdio.h>
#include <string.h>
int main() {
char src[10] = "Hello!";
char dest[10];
strcpy(dest, src, 3);
printf("%s\n", dest);
return 0;
}
문자열을 출력할 때에 null을 기준으로 끝을 알아내서 출력합니다.
strncpy 함수를 구현해 보겠습니다.
strncpy 함수 구현
char *OdOp_strncpy(char *dest, char *src, unsigned int n)
{
unsigned int i;
i = 0;
while (*(src + i) && i < n)
{
*(dest + i) = *(src + i);
i++;
}
while (i < n)
{
*(dest + i) = '\0';
i++;
}
return (dest);
}
문자열을 메모리 주소로 접근을 하여 null문자가 나올 때까지 dest에 문자 하나씩 할당을 해줍니다.
다 할당을 해주었다면 마지막에 dest에도 null문자를 하나 할당해 줍니다.
이때 strncpy는 i가 n보다 작을 경우에 i가 n과 같아질 때까지 남은 dest자리에 null을 넣어줍니다.
반응형
'Language > C언어' 카테고리의 다른 글
C030_strcmp 함수 구현해서 사용하기 (0) | 2023.10.25 |
---|---|
C029_strlcpy 함수 구현해서 사용하기 (0) | 2023.10.24 |
C027_strcpy 함수 구현해서 사용하기 (0) | 2023.10.20 |
C026_write함수 문자열 출력하기 (0) | 2023.10.13 |
C025_putchar함수 만들기 (0) | 2023.10.12 |