diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-07-06 08:42:30 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-07-06 08:42:30 +0200 |
| commit | d732047d6681b1f64f7907d1c0413abdaab76050 (patch) | |
| tree | c2123d55a7431de9bb55371dcc78c955da607c6f /c04/ex04 | |
| parent | af8435d40cdb8e7871ff004fb21382c236f9bd0f (diff) | |
| download | piscine-d732047d6681b1f64f7907d1c0413abdaab76050.tar.gz piscine-d732047d6681b1f64f7907d1c0413abdaab76050.tar.bz2 piscine-d732047d6681b1f64f7907d1c0413abdaab76050.zip | |
c03 and begin c04
Diffstat (limited to 'c04/ex04')
| -rw-r--r-- | c04/ex04/ft_putnbr_base.c | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/c04/ex04/ft_putnbr_base.c b/c04/ex04/ft_putnbr_base.c new file mode 100644 index 0000000..6827475 --- /dev/null +++ b/c04/ex04/ft_putnbr_base.c @@ -0,0 +1,70 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putnbr_base.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2019/07/06 07:47:44 by cacharle #+# #+# */ +/* Updated: 2019/07/06 08:37:59 by cacharle ### ########.fr */ +/* */ +/* ************************************************************************** */ + +int check_base(char *base) +{ + int i; + + if (!*base) + return (0); + while (*base) + { + if (*base == '-' || *base == '+') + return (0); + i = 0; + while (base[i]) + { + if (base[i] == *base) + return (0); + i++; + } + } + return (1); +} + +int my_strlen(char *str) +{ + int counter; + + counter = 0; + while (*str) + { + counter++; + str++; + } + return (counter); +} + +void ft_putnbr_base(int nbr, char *base) +{ + int radix; + int i; + int nb; + int rev_digits[1024]; + + if (!check_base(base)) + return; + radix = my_strlen(base); + nb = 0; + i = 0; + while (nb > 0) + { + rev_digits[i] = base[nb % radix]; + nb /= radix; + i++; + } + while (i > 0) + { + i--; + write(1, rev_digits + i, 1); + } +} |
