diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-15 11:40:48 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-02-04 04:09:19 +0100 |
| commit | 014d876b691b5c0e84faa98bd308a855269e4ae4 (patch) | |
| tree | 8c26213ab8426f906fa143f904ab0f6a39e22013 /ft_atoi.c | |
| parent | 435fec311c0c5173ae99c32b8f4e6431bd1e43d2 (diff) | |
| download | libft-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.c | 41 |
1 files changed, 3 insertions, 38 deletions
@@ -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)); } |
