From 014d876b691b5c0e84faa98bd308a855269e4ae4 Mon Sep 17 00:00:00 2001 From: Charles Date: Wed, 15 Jan 2020 11:40:48 +0100 Subject: Added ft_strtol, ft_isspace, ft_todigit, ft_strict_atoi, modified ft_atoi to use ft_strtol --- ft_atoi.c | 41 +++-------------------------------------- 1 file changed, 3 insertions(+), 38 deletions(-) (limited to 'ft_atoi.c') diff --git a/ft_atoi.c b/ft_atoi.c index 17488fa..aedf3b2 100644 --- a/ft_atoi.c +++ b/ft_atoi.c @@ -6,48 +6,13 @@ /* By: cacharle +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/07 09:46:16 by cacharle #+# #+# */ -/* Updated: 2019/10/19 10:50:39 by cacharle ### ########.fr */ +/* Updated: 2020/02/04 04:04:15 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ -#define MIN_INT -2147483648 -#define MAX_INT 2147483647 - -static int precheck(const char **str) -{ - int is_negative; - - while (**str == ' ' || **str == '\t' || **str == '\n' - || **str == '\v' || **str == '\f' || **str == '\r') - (*str)++; - is_negative = 0; - if (**str == '-' || **str == '+') - { - if (**str == '-') - is_negative = 1; - (*str)++; - } - return (is_negative); -} +#include "libft.h" int ft_atoi(const char *str) { - unsigned int nb; - int i; - int is_negative; - - is_negative = precheck(&str); - i = 0; - nb = 0; - while (str[i] >= '0' && str[i] <= '9') - { - if (!is_negative && nb > (unsigned int)MAX_INT) - return (-1); - else if (nb > (unsigned int)MIN_INT) - return (0); - nb *= 10; - nb += str[i] - '0'; - i++; - } - return ((int)(is_negative ? -nb : nb)); + return ((int)ft_strtol(str, (char**)NULL, 10)); } -- cgit