/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_itoa.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: cchauvet <cchauvet@student.42angoulem +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/09/29 13:49:45 by cchauvet #+# #+# */ /* Updated: 2023/01/09 13:51:09 by cchauvet ### ########.fr */ /* */ /* ************************************************************************** */ #include "libft.h" static int ft_nb_digit(int n) { int out; out = 0; while (n) { n /= 10; out++; } return (out); } char *ft_itoa(int n) { char *out; unsigned int nb[2]; if (!n) return (ft_strdup("0")); nb[0] = ft_nb_digit(n); if (n < 0) { nb[1] = -n; nb[0]++; } else nb[1] = n; out = malloc(sizeof(char) * (nb[0] + 1)); if (out == NULL) return (NULL); out[nb[0]--] = 0; if (n < 0) out[0] = '-'; while (nb[1]) { out[nb[0]--] = nb[1] % 10 + 48; nb[1] /= 10; } return (out); }