Пример #1
0
char		*ft_itoa(int nb)
{
	int		i;
	char	*str;
	int		isneg;

	if (nb == 0 || nb == -2147483648)
		return ((nb == 0) ? ft_strdup("0") : ft_strdup("-2147483648"));
	i = 0;
	isneg = 0;
	if (nb < 0)
	{
		i++;
		isneg = 1;
		nb = nb * (-1);
	}
	i = ft_itoa_count(nb) + i;
	str = malloc(sizeof(char) * i + 1);
	if (!str)
		return (NULL);
	str[i] = '\0';
	while (nb)
	{
		str[--i] = (nb % 10) + '0';
		nb = nb / 10;
	}
	return (ft_isneg(isneg, str));
}
Пример #2
0
char			*ft_itoa(int n)
{
	char	*str;
	char	*strtemp;
	size_t	negative;
	size_t	i;

	negative = (n < 0) ? 1 : 0;
	n = (negative) ? n : -n;
	i = (n) ? ft_itoa_count(n) : 1;
	if ((str = ft_strnew(i + negative)) == NULL)
		return (NULL);
	strtemp = str;
	if (negative)
		*str++ = '-';
	str += i - 1;
	while (i-- > 0)
	{
		*str-- = -(n % 10) + 48;
		n /= 10;
	}
	return (strtemp);
}