/* ************************************************************************** */ /* */ /* ::: o_ :::::: ::: */ /* ft_itoa.c :+: / :+::+: :+: */ /* +:+ > +:++:+ +:+ */ /* By: whaffman +#+ +:+ +#++#++:++#++ */ /* +#+ +#+#+ +#++#+ +#+ \o/ */ /* Created: 2024/10/10 17:00:17 by whaffman #+#+# #+#+# #+# #+# | */ /* Updated: 2024/10/10 17:00:17 by whaffman ### ### ### ### / \ */ /* */ /* ************************************************************************** */ #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); }