]> git.dkaiser.de - 42/libft.git/commitdiff
Add ft_atol.c
authorDominik Kaiser <dkaiser@2-D-9.42heilbronn.de>
Mon, 29 Apr 2024 14:29:35 +0000 (16:29 +0200)
committerDominik Kaiser <dkaiser@2-D-9.42heilbronn.de>
Mon, 29 Apr 2024 14:29:35 +0000 (16:29 +0200)
Makefile
ft_atol.c [new file with mode: 0644]

index 4cddb3cb6c9e818eec904f19b4fdbc3123e473de..907d4394cd43c235400a30b5ff9c65d30c170cf8 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -41,7 +41,8 @@ SRC_FILES = ft_atoi.c \
                        ft_printhex.c \
                        ft_printaddr.c \
                        get_next_line.c \
-                       get_next_line_utils.c
+                       get_next_line_utils.c \
+                       ft_atol.c
 
 
 OBJ_FILES = $(SRC_FILES:.c=.o)
diff --git a/ft_atol.c b/ft_atol.c
new file mode 100644 (file)
index 0000000..8184301
--- /dev/null
+++ b/ft_atol.c
@@ -0,0 +1,41 @@
+/* ************************************************************************** */
+/*                                                                            */
+/*                                                        :::      ::::::::   */
+/*   ft_atol.c                                          :+:      :+:    :+:   */
+/*                                                    +:+ +:+         +:+     */
+/*   By: dkaiser <dkaiser@student.42heilbronn.de    +#+  +:+       +#+        */
+/*                                                +#+#+#+#+#+   +#+           */
+/*   Created: 2024/04/26 16:18:28 by dkaiser           #+#    #+#             */
+/*   Updated: 2024/04/26 17:56:54 by dkaiser          ###   ########.fr       */
+/*                                                                            */
+/* ************************************************************************** */
+
+#include "push_swap.h"
+
+long   ft_atol(const char *str)
+{
+       long    result;
+       int             i;
+       int             posneg;
+
+       posneg = 1;
+       result = 0;
+       i = 0;
+       while ((str[i] >= '\t' && str[i] <= '\r') || str[i] == ' ')
+       {
+               i++;
+       }
+       if (str[i] == '-')
+       {
+               posneg = -1;
+               i++;
+       }
+       else if (str[i] == '+')
+               i++;
+       while (str[i] >= '0' && str[i] <= '9')
+       {
+               result = 10 * result + str[i] - '0';
+               i++;
+       }
+       return (result * posneg);
+}