From 10b4feb67c8af2b099dabd66f948b02e180bae0d Mon Sep 17 00:00:00 2001 From: Cabergs Charles Date: Mon, 7 Oct 2019 11:35:51 +0200 Subject: Normed everything Created a few dummy functions to resolve functions having more than 25 lines. --- ft_atoi.c | 62 +++++++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 41 insertions(+), 21 deletions(-) (limited to 'ft_atoi.c') diff --git a/ft_atoi.c b/ft_atoi.c index 94c42cc..ba929d8 100644 --- a/ft_atoi.c +++ b/ft_atoi.c @@ -1,33 +1,53 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_atoi.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/10/07 09:46:16 by cacharle #+# #+# */ +/* Updated: 2019/10/07 11:34:37 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + #define MIN_INT (1 << 31) #define MAX_INT (~(1 << 31)) -int ft_atoi(const char *nptr) +static int precheck(const char **nptr) { - unsigned int nb; - int i; - int is_negative; + int is_negative; - while (*nptr == ' ' || *nptr == '\t'|| *nptr == '\n' - || *nptr == '\v'|| *nptr == '\f'|| *nptr == '\r') - nptr++; - is_negative = 0; - if (*nptr == '-' || *nptr == '+') + while (**nptr == ' ' || **nptr == '\t' || **nptr == '\n' + || **nptr == '\v' || **nptr == '\f' || **nptr == '\r') + (*nptr)++; + is_negative = 0; + if (**nptr == '-' || **nptr == '+') { - if (*nptr == '-') - is_negative = 1; - nptr++; + if (**nptr == '-') + is_negative = 1; + (*nptr)++; } - i = 0; - nb = 0; + return (is_negative); +} + +int ft_atoi(const char *nptr) +{ + unsigned int nb; + int i; + int is_negative; + + is_negative = precheck(&nptr); + i = 0; + nb = 0; while (nptr[i] >= '0' && nptr[i] <= '9') { - if (!is_negative && nb > (unsigned int)MAX_INT) - return (-1); - else if (nb > (unsigned int)MIN_INT) - return (0); - nb *= 10; - nb += nptr[i] - '0'; - i++; + if (!is_negative && nb > (unsigned int)MAX_INT) + return (-1); + else if (nb > (unsigned int)MIN_INT) + return (0); + nb *= 10; + nb += nptr[i] - '0'; + i++; } return ((int)(is_negative ? -nb : nb)); } -- cgit