본문 바로가기
Language/C언어

C028_strncpy 함수 구현해서 사용하기

by OdOp 관리자 2023. 10. 21.
SMALL

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을 넣어줍니다. 

LIST