From 40ad9bfe202f72a5b52eed8ff38da9b27de12adb Mon Sep 17 00:00:00 2001 From: yctct Date: Thu, 16 Apr 2026 18:25:12 +0200 Subject: First commit --- lib/ft_itoa.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 lib/ft_itoa.c (limited to 'lib/ft_itoa.c') diff --git a/lib/ft_itoa.c b/lib/ft_itoa.c new file mode 100644 index 0000000..2f36865 --- /dev/null +++ b/lib/ft_itoa.c @@ -0,0 +1,64 @@ +/* +Libft Copyright (C) 2026 yctct + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "libft.h" + +static long int ft_nbrlen(long int n) +{ + int len; + + len = 0; + if (n < 0) + { + n = -n; + len += 1; + } + while (n) + { + n /= 10; + len++; + } + return (len); +} + +char *ft_itoa(int nb) +{ + char *c; + int len; + long n; + + n = nb; + if (n == 0) + return (ft_strdup("0")); + len = ft_nbrlen(n); + c = malloc(sizeof(char) * (len + 1)); + if (!c) + return (NULL); + if (n < 0) + { + n = -n; + c[0] = '-'; + } + c[len] = '\0'; + while (n) + { + c[--len] = (n % 10) + '0'; + n /= 10; + } + return (c); +} + -- cgit v1.2.3