/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_itoa.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: whaffman +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/05 18:42:04 by whaffman #+# #+# */ /* Updated: 2024/07/10 15:50:44 by whaffman ### ########.fr */ /* */ /* ************************************************************************** */ #include #include "libft.h" static char *itoa_stralloc(int n) { int i; i = 0; if (n <= 0) i++; while (n) { i++; n /= 10; } return (ft_calloc((i + 1), sizeof(char))); } char *ft_itoa(int n) { int i; long ln; long divider; char *result; result = itoa_stralloc(n); if (!result) return (NULL); ln = n; i = 0; divider = 1; if (ln < 0) { ln *= -1; result[i++] = '-'; } while (divider * 10 <= ln) divider *= 10; while (divider) { result[i++] = ln / divider + '0'; ln %= divider; divider /= 10; } return (result); }