ft_strlcpy

nawkim·2021년 5월 26일
0

libft

목록 보기
10/44

1. 프로토타입

size_t	ft_strlcpy(char *dst, const char *src, size_t size)
  • 헤더
#include <string.h>
  • 형태
size_t	strlcpy(char * restrict dst, const char * restrict src, size_t dstsize)
  • size_t
    #inlcude <unistd.h> 필요함.
    크기를 의미하는 변수로 사용.
    이론상 가장 큰 사이즈를 담을 수 있는 unsigned 데이터 타입.
    즉, 32비트 머신에서는 32비트 사이즈의 unsigned 정수형(unsigned int가 아니라 그냥 '정수'를 의미), 64비트 머신에서는 64비트 사이즈의 unsigned 정수형(unsigned long long)
  • const char *str
    문자열 str의 값 변경 불가능.(ex. str = "asdf"처럼 문자열 값 변경은 불가능.)
    포인터만 변경 가능.(ex. str++처럼 포인터 값 변경은 가능.)

2. 용도

3. 리턴값

4. 코드 구현

#include "libft.h"

size_t	ft_strlcpy(char *dst, const char *src, size_t size)
{
	size_t	srclen;
	size_t	t;

	srclen = 0;
	t = 0;
	while (src[srclen] != '\0')
		srclen++;
	if (dst[0] == '\0' && src[0] == '\0')
		return (0);
	while (t + 1 < size && src[t] != '\0')
	{
		dst[t] = src[t];
		t++;
	}
	if (size > 0)
		dst[t] = '\0';
	return (srclen);
}

5. 코드 설명

profile
공부 기록.

0개의 댓글