[ft_printf] (%c, %s)

J_JEON·2022년 4월 22일
0

ft_printf

목록 보기
3/5

구현한 ft_printf함수에서 %c와 %s를 구현

%c

ssize_t	ft_print_c(va_list **a)
{
	unsigned char	vatemp; //가변인자로부터 받아온 문자를 저장할 변수
	ssize_t			print_size; //출력한 크기

	print_size = 0;
	vatemp = (unsigned char)va_arg(**a, int);
    //가변인자로부터 int크기만큼의 데이터를 읽어와 vatemp에 저장
	print_size = write(1, &vatemp, 1);
    //vatemp에 저장한 문자를 출력하고 출력한 크기를 print_size에 저장
	return (print_size); //출력한 크기를 반환
}

%s

ssize_t	ft_print_s(va_list **a)
{
	char	*vatemp; //가변인자로부터 받아온 문자를 저장할 변수
	ssize_t	print_size; //출력한 크기를 저장할 변수

	print_size = 0;
	vatemp = (char *)va_arg(**a, char *); //가변인자로부터 char *크기만큼의 데이터를 읽어와 vatemp에 저장
	if (vatemp == NULL) //읽어온 문자열이 비어있을때는 (null)을 출력해야함
		vatemp = "(null)"; //vatmpe를 (null)로 저장
	print_size = write (1, vatemp, ft_strlen(vatemp));
     //vatemp문자열을 출력하고 출력한 크기만큼 print_size에 저장
	return (print_size); //출력한 크기를 반환
}
profile
늅늅

0개의 댓글