int ft_putbase(uintmax_t nb, char *s) { unsigned int b; int i; i = 0; b = ft_strlen(s); if (nb < b) return (ft_putchar(s[nb])); i += ft_putbase(nb / b, s); i += ft_putbase(nb % b, s); return (i); }
void ft_putbase(unsigned int n, unsigned int base) { unsigned int tmp; if (n >= base) ft_putbase(n / base, base); else { if (base == 8) ft_putchar('0'); else if (base == 16) ft_putstr("0x"); } tmp = n % base; if (tmp <= 9) ft_putchar(tmp + '0'); else if (tmp > 9 && tmp <= 9 + 26) ft_putchar(tmp + 'A' - 10); }
ssize_t ft_putbase(unsigned int n, char *base) { ssize_t i; size_t len; i = 0; len = ft_strlen(base); if (n <= len) { i += ft_putchar(*(base + n % len)); return (i); } else { i += ft_putbase(n / len, base); ft_putchar(*(base + n % len)); } return (i + 1); }