aboutsummaryrefslogtreecommitdiff
path: root/ft_atoi.c
diff options
context:
space:
mode:
authorCabergs Charles <cacharle@w-r4-p5.s19.be>2019-10-07 11:35:51 +0200
committerCabergs Charles <cacharle@w-r4-p5.s19.be>2019-10-07 11:35:51 +0200
commit10b4feb67c8af2b099dabd66f948b02e180bae0d (patch)
treee97d3d4701a79ac2087534dd350225e556127a76 /ft_atoi.c
parent9a2b208985ac7d4644c718ada74770b98eeb4598 (diff)
downloadlibft-10b4feb67c8af2b099dabd66f948b02e180bae0d.tar.gz
libft-10b4feb67c8af2b099dabd66f948b02e180bae0d.tar.bz2
libft-10b4feb67c8af2b099dabd66f948b02e180bae0d.zip
Normed everything
Created a few dummy functions to resolve functions having more than 25 lines.
Diffstat (limited to 'ft_atoi.c')
-rw-r--r--ft_atoi.c62
1 files changed, 41 insertions, 21 deletions
diff --git a/ft_atoi.c b/ft_atoi.c
index 94c42cc..ba929d8 100644
--- a/ft_atoi.c
+++ b/ft_atoi.c
@@ -1,33 +1,53 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_atoi.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/10/07 09:46:16 by cacharle #+# #+# */
+/* Updated: 2019/10/07 11:34:37 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
#define MIN_INT (1 << 31)
#define MAX_INT (~(1 << 31))
-int ft_atoi(const char *nptr)
+static int precheck(const char **nptr)
{
- unsigned int nb;
- int i;
- int is_negative;
+ int is_negative;
- while (*nptr == ' ' || *nptr == '\t'|| *nptr == '\n'
- || *nptr == '\v'|| *nptr == '\f'|| *nptr == '\r')
- nptr++;
- is_negative = 0;
- if (*nptr == '-' || *nptr == '+')
+ while (**nptr == ' ' || **nptr == '\t' || **nptr == '\n'
+ || **nptr == '\v' || **nptr == '\f' || **nptr == '\r')
+ (*nptr)++;
+ is_negative = 0;
+ if (**nptr == '-' || **nptr == '+')
{
- if (*nptr == '-')
- is_negative = 1;
- nptr++;
+ if (**nptr == '-')
+ is_negative = 1;
+ (*nptr)++;
}
- i = 0;
- nb = 0;
+ return (is_negative);
+}
+
+int ft_atoi(const char *nptr)
+{
+ unsigned int nb;
+ int i;
+ int is_negative;
+
+ is_negative = precheck(&nptr);
+ i = 0;
+ nb = 0;
while (nptr[i] >= '0' && nptr[i] <= '9')
{
- if (!is_negative && nb > (unsigned int)MAX_INT)
- return (-1);
- else if (nb > (unsigned int)MIN_INT)
- return (0);
- nb *= 10;
- nb += nptr[i] - '0';
- i++;
+ if (!is_negative && nb > (unsigned int)MAX_INT)
+ return (-1);
+ else if (nb > (unsigned int)MIN_INT)
+ return (0);
+ nb *= 10;
+ nb += nptr[i] - '0';
+ i++;
}
return ((int)(is_negative ? -nb : nb));
}