From ac6909533f85abfd5f37f46cca0c484d57b75d69 Mon Sep 17 00:00:00 2001 From: kinou Date: Tue, 8 Dec 2020 21:08:06 +0100 Subject: [PATCH] h --- ft_itoa.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 ft_itoa.c diff --git a/ft_itoa.c b/ft_itoa.c new file mode 100644 index 0000000..ca1a88e --- /dev/null +++ b/ft_itoa.c @@ -0,0 +1,56 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_itoa.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: apommier +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2020/12/08 18:20:19 by apommier #+# #+# */ +/* Updated: 2020/12/08 19:00:08 by apommier ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +char *fill(long n, int j, int minus) +{ + char *dest; + + j += minus; + dest = (char*)ft_calloc(j + 1, 1); + if (dest == 0) + return (0); + dest[j] = 0; + while (n) + { + dest[j - 1] = n % 10 + '0'; + j--; + n /= 10; + } + if (minus) + dest[j - 1] = '-'; + return (dest); +} + +char *ft_itoa(int n) +{ + long i; + int j; + int minus; + + minus = 0; + i = 1; + j = 0; + + if (n < 0) + { + minus = 1; + n = n * -1; + } + while (n >= i - 1) + { + i = i * 10; + j++; + } + return (fill(n, j, minus)); +}