aboutsummaryrefslogtreecommitdiffstats
path: root/ft_atoi.c
diff options
context:
space:
mode:
authorThomas Vanbesien <tvanbesi@proton.me>2026-02-21 12:39:20 +0100
committerThomas Vanbesien <tvanbesi@proton.me>2026-02-21 12:39:34 +0100
commitd699849b2360f90c61f645c5d4d4232cd3e1c962 (patch)
treec929ec20ca3b16fe3d34bd75e412ca49f7420125 /ft_atoi.c
downloadLibft-d699849b2360f90c61f645c5d4d4232cd3e1c962.tar.gz
Libft-d699849b2360f90c61f645c5d4d4232cd3e1c962.zip
Initial commit: libft Part 1 with tests and documentation
Reimplements 24 libc functions with Doxygen-documented header and test suite comparing against libc.
Diffstat (limited to 'ft_atoi.c')
-rw-r--r--ft_atoi.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/ft_atoi.c b/ft_atoi.c
new file mode 100644
index 0000000..2fe091a
--- /dev/null
+++ b/ft_atoi.c
@@ -0,0 +1,26 @@
+#include "libft.h"
+
+int
+ft_atoi (const char *nptr)
+{
+ int sign;
+ int result;
+
+ result = 0;
+ sign = 1;
+ // Skip isspace() characters: space, \t, \n, \v, \f, \r.
+ while (*nptr == ' ' || (*nptr >= '\t' && *nptr <= '\r'))
+ nptr++;
+ if (*nptr == '-' || *nptr == '+')
+ {
+ if (*nptr == '-')
+ sign = -1;
+ nptr++;
+ }
+ while (*nptr >= '0' && *nptr <= '9')
+ {
+ result = result * 10 + (*nptr - '0');
+ nptr++;
+ }
+ return (result * sign);
+}