ft_itoa

nawkim·2021년 5월 26일
0

libft

목록 보기
29/44

1. 프로토타입

char	*ft_itoa(int n)

2. 용도

3. 리턴값

4. 코드 구현

#include "libft.h"

static void	ft_putnbr_itoa(int n, int cnt, char *ret)
{
	char	a;

	ret[cnt] = '\0';
	if (n < 0)
	{
		if (n == -2147483648)
		{
			cnt--;
			ret[cnt] = '8';
			n = -214748364;
		}
		n *= -1;
		ret[0] = '-';
	}
	if (n == 0)
		ret[0] = '0';
	while (n > 0)
	{
		a = n % 10 + '0';
		ret[cnt - 1] = a;
		n /= 10;
		cnt--;
	}
}

static int	ft_check_cnt_itoa(int n)
{
	int		t;

	t = 0;
	if (n == 0)
		return (1);
	else if (n < 0)
		t = 1;
	while (n != 0)
	{
		n /= 10;
		t++;
	}
	return (t);
}

char		*ft_itoa(int n)
{
	char	*ret;
	int		cnt;

	cnt = ft_check_cnt_itoa(n);
	ret = (char *)malloc(sizeof(char) * (cnt + 1));
	if (ret == 0)
		return (NULL);
	ft_putnbr_itoa(n, cnt, ret);
	return (ret);
}

5. 코드 설명

profile
공부 기록.

0개의 댓글