diff options
| author | Dominik Kaiser | 2024-04-12 18:51:50 +0200 |
|---|---|---|
| committer | Dominik Kaiser | 2024-04-12 18:51:50 +0200 |
| commit | 9c64c9d253fa22b29005ec53dca6fedcead2ae6c (patch) | |
| tree | d7e01093e0a5a4ef9b4ef2bc674ec86e3b97e452 /libft/ft_itoa.c | |
| parent | 1f1d95faadca635adcb8e46bb0aecc0574654a24 (diff) | |
| download | push_swap-9c64c9d253fa22b29005ec53dca6fedcead2ae6c.tar.gz push_swap-9c64c9d253fa22b29005ec53dca6fedcead2ae6c.zip | |
Add libft and input handling
Diffstat (limited to 'libft/ft_itoa.c')
| -rw-r--r-- | libft/ft_itoa.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/libft/ft_itoa.c b/libft/ft_itoa.c new file mode 100644 index 0000000..401ba6a --- /dev/null +++ b/libft/ft_itoa.c @@ -0,0 +1,68 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_itoa.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: dkaiser <dkaiser@student.42heilbronn.de +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2024/03/10 10:42:08 by dkaiser #+# #+# */ +/* Updated: 2024/03/10 13:18:58 by dkaiser ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include "libft.h" + +static int get_last_digit(int n) +{ + int last_digit; + + last_digit = n % 10; + if (last_digit < 0) + last_digit *= -1; + return (last_digit); +} + +static int get_len(int n) +{ + int len; + + len = 0; + if (n == 0) + return (1); + if (n < 0) + len++; + while (n) + { + len++; + n /= 10; + } + return (len); +} + +char *ft_itoa(int n) +{ + char *result; + int len; + + len = get_len(n); + result = malloc(sizeof(char) * (len + 1)); + if (!result) + return (0); + result[len] = '\0'; + if (n == 0) + result[0] = '0'; + if (n < 0) + result[0] = '-'; + while (n) + { + result[--len] = '0' + get_last_digit(n); + n /= 10; + } + return (result); +} + +/* #include <stdio.h> */ +/* int main() { */ +/* char* itoa = ft_itoa(0); */ +/* printf("%s\n", itoa); */ +/* } */ |
