aboutsummaryrefslogtreecommitdiff
path: root/src/str/ft_atoi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/str/ft_atoi.c')
-rw-r--r--src/str/ft_atoi.c29
1 files changed, 2 insertions, 27 deletions
diff --git a/src/str/ft_atoi.c b/src/str/ft_atoi.c
index 0ad6022..fa31407 100644
--- a/src/str/ft_atoi.c
+++ b/src/str/ft_atoi.c
@@ -6,38 +6,13 @@
/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/10/07 09:46:16 by cacharle #+# #+# */
-/* Updated: 2020/01/15 09:26:14 by cacharle ### ########.fr */
+/* Updated: 2020/01/15 10:56:06 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft.h"
-#define MIN_INT -2147483648
-#define MAX_INT 2147483647
-
int ft_atoi(const char *str)
{
- unsigned int nb;
- int i;
- 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;
- i = 0;
- nb = 0;
- while (ft_isdigit(str[i]))
- {
- if (!is_negative && nb > (unsigned int)MAX_INT)
- return (-1);
- else if (nb > (unsigned int)MIN_INT)
- return (0);
- nb *= 10;
- nb += str[i++] & 0x0F;
- }
- return ((int)(is_negative ? -nb : nb));
+ return ((int)ft_strtol(str, (char**)NULL, 10));
}