/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_atoi_check.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: erey-bet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/07/21 08:21:05 by erey-bet #+# #+# */ /* Updated: 2022/12/08 16:37:19 by erey-bet ### ########.fr */ /* */ /* ************************************************************************** */ #include "utils.h" static int ft_isspace(char c) { if (c == ' ' || c == '\f' ||c == '\n' || c == '\r' || c == '\t' || c == '\v') return (1); return (0); } int ft_atoi_check(const char *nptr) { long result; int sign; while (ft_isspace(*nptr)) nptr++; sign = 1; if (*nptr == '+' || *nptr == '-') { if (*nptr == '-') sign = -1; nptr++; } result = 0; while (*nptr >= '0' && *nptr <= '9') { result = result * 10 + *nptr++ - '0'; if ((result > 2147483647 && sign == 1) || (result > 2147483648 && sign == -1)) return (0); } if (*nptr--) return (0); if (*nptr == '-' || *nptr == '+') return (0); return (1); }