From e85813dd1ae95b4b32a90d463d58b2b3fd69eed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20GUEZO?= Date: Wed, 22 Oct 2025 18:44:43 +0200 Subject: [PATCH] fix(ft_atoi): rework function - handle minus sign - allow space before number --- ft_atoi.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/ft_atoi.c b/ft_atoi.c index 4a2e845..251321b 100644 --- a/ft_atoi.c +++ b/ft_atoi.c @@ -3,21 +3,27 @@ int ft_atoi(const char *str) { int value; - size_t len; size_t i; - int n; + int is_negative; value = 0; - len = ft_strlen(str); i = 0; - while (i < len) + is_negative = 0; + while (str[i] == ' ') + i++; + if (str[i] == '-') { - if (!ft_isdigit(str[i])) - return (value); - n = (int)(str[i] - '0'); - value *= 10; - value += n; + is_negative = 1; i++; } - return (value); + else if (str[i] == '+') + i++; + while (str[i] && ft_isdigit(str[i])) + { + value *= 10 + ((int)(str[i] - '0')); + } + if (is_negative) + return (value * -1); + else + return (value); }