aboutsummaryrefslogtreecommitdiff
path: root/ft_atoi.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-15 11:40:48 +0100
committerCharles <sircharlesaze@gmail.com>2020-02-04 04:09:19 +0100
commit014d876b691b5c0e84faa98bd308a855269e4ae4 (patch)
tree8c26213ab8426f906fa143f904ab0f6a39e22013 /ft_atoi.c
parent435fec311c0c5173ae99c32b8f4e6431bd1e43d2 (diff)
downloadlibft-014d876b691b5c0e84faa98bd308a855269e4ae4.tar.gz
libft-014d876b691b5c0e84faa98bd308a855269e4ae4.tar.bz2
libft-014d876b691b5c0e84faa98bd308a855269e4ae4.zip
Added ft_strtol, ft_isspace, ft_todigit, ft_strict_atoi, modified ft_atoi to use ft_strtol
Diffstat (limited to 'ft_atoi.c')
-rw-r--r--ft_atoi.c41
1 files changed, 3 insertions, 38 deletions
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 <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* 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));
}