From 0f8558ed5f27aefdf40e9f5797cc5e8b185acb64 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Luk=C3=A1=C5=A1=20Ji=C5=99i=C5=A1t=C4=9B?= Date: Sun, 3 Dec 2023 20:48:43 +0100 Subject: [PATCH] Add solution for first part of day 1 --- 1/1.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 1/1.c diff --git a/1/1.c b/1/1.c new file mode 100644 index 0000000..73d4c0a --- /dev/null +++ b/1/1.c @@ -0,0 +1,50 @@ + +#include +#include +#include +#include "libft.h" + +int line_value(char *line) +{ + char two_digit[2]; + size_t i; + + i = 0; + while (!ft_isdigit(line[i])) + ++i; + two_digit[0] = line[i]; + while(line[i]) + ++i; + while (!ft_isdigit(line[i])) + --i; + two_digit[1] = line[i]; + return (ft_atoi(two_digit)); +} + +int main(int argc, char **argv) +{ + char *line; + int fd; + int result; + + if (argc != 2) + { + return (1); + } + fd = open(argv[1], O_RDONLY); + if (fd < 0) + { + return (2); + } + result = 0; + line = get_next_line(fd); + while (line) + { + result += line_value(line); + free(line); + line = get_next_line(fd); + } + ft_printf("The calibration sum is %i.\n", result); + close(fd); + return (0); +} -- 2.30.2