From a8f7e6e83bc4846c94c0489e0f6e0f807b35073e Mon Sep 17 00:00:00 2001 From: Thomas Vanbesien Date: Sat, 21 Feb 2026 16:29:51 +0100 Subject: Implement libft Part 2 with tests Add ft_substr, ft_strjoin, ft_strtrim, ft_split, ft_itoa, ft_strmapi, ft_striteri, ft_putchar_fd, ft_putstr_fd, ft_putendl_fd, ft_putnbr_fd. --- src/ft_itoa.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/ft_itoa.c (limited to 'src/ft_itoa.c') diff --git a/src/ft_itoa.c b/src/ft_itoa.c new file mode 100644 index 0000000..05f3fae --- /dev/null +++ b/src/ft_itoa.c @@ -0,0 +1,45 @@ +#include "libft.h" +#include + +static size_t +_s_numlen (int n) +{ + size_t len; + + len = 1; + if (n < 0) + len++; + while (n / 10) + { + len++; + n /= 10; + } + return (len); +} + +char * +ft_itoa (int n) +{ + size_t len; + char *str; + unsigned int nb; + + len = _s_numlen (n); + str = malloc (len + 1); + if (!str) + return (NULL); + str[len] = '\0'; + if (n < 0) + { + str[0] = '-'; + nb = -n; + } + else + nb = n; + while (len > 0 && str[len - 1] != '-') + { + str[--len] = '0' + nb % 10; + nb /= 10; + } + return (str); +} -- cgit v1.2.3