diff options
author | Rudy Bousset <rbousset@z2r5p6.le-101.fr> | 2019-10-29 12:25:57 +0100 |
---|---|---|
committer | Rudy Bousset <rbousset@z2r5p6.le-101.fr> | 2019-10-29 12:25:57 +0100 |
commit | 507661351ca718c8a3d8213a0a80f994825fc881 (patch) | |
tree | eb9192a57e884e5bcf96f79d98cf7659924ce1df /libft/ft_itoa.c | |
parent | Makefile complete (diff) | |
download | 42-minishell-507661351ca718c8a3d8213a0a80f994825fc881.tar.gz 42-minishell-507661351ca718c8a3d8213a0a80f994825fc881.tar.bz2 42-minishell-507661351ca718c8a3d8213a0a80f994825fc881.tar.xz 42-minishell-507661351ca718c8a3d8213a0a80f994825fc881.tar.zst 42-minishell-507661351ca718c8a3d8213a0a80f994825fc881.zip |
libft included
Diffstat (limited to '')
-rw-r--r-- | libft/ft_itoa.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/libft/ft_itoa.c b/libft/ft_itoa.c new file mode 100644 index 0000000..bf3c0c8 --- /dev/null +++ b/libft/ft_itoa.c @@ -0,0 +1,62 @@ +/* ************************************************************************** */ +/* LE - / */ +/* / */ +/* ft_itoa.c .:: .:/ . .:: */ +/* +:+:+ +: +: +:+:+ */ +/* By: rbousset <marvin@le-101.fr> +:+ +: +: +:+ */ +/* #+# #+ #+ #+# */ +/* Created: 2019/10/13 02:22:48 by rbousset #+# ## ## #+# */ +/* Updated: 2019/10/13 13:35:46 by rbousset ### #+. /#+ ###.fr */ +/* / */ +/* / */ +/* ************************************************************************** */ + +#include "libft.h" +#include <inttypes.h> +#include <stdlib.h> + +static uint8_t + ft_intlen(int n) +{ + uint8_t len; + + len = 0; + if (!n) + return (1); + if (n < 0) + len = 1; + while (n != 0) + { + n /= 10; + len++; + } + return (len); +} + +char + *ft_itoa(int n) +{ + char *s; + unsigned int nb; + uint8_t i; + + i = ft_intlen(n) - 1; + if (!(s = (char*)malloc((i + 2) * sizeof(char)))) + return (NULL); + if (!n) + s[i] = '0'; + nb = n; + if (n < 0) + { + s[0] = '-'; + nb = -n; + } + s[i + 1] = '\0'; + while (nb > 0) + { + s[i] = 48 + (nb % 10); + nb = nb / 10; + i--; + } + return (s); +} |