int my_put_majs(va_list ap) { unsigned char *s; int i; i = 0; s = va_arg(ap, unsigned char *); if (s == NULL) my_putstr("(null)"); else while (s[i] != 0) { if (s[i] >= 32 && s[i] < 127) my_putchar(s[i]); else { my_putchar('\\'); if (s[i] < 8) my_putstr("00"); else if (s[i] < 32 && s[i] >= 8) fct_putchar(s, i); my_put_nbr_base(8, s[i], "01234567"); } i++; } return (i); }
void my_put_nbr_base(int nbr, int base, int x) { if (nbr < 0) { nbr = nbr * (-1); my_putchar('-'); } if (nbr >= base) { my_put_nbr_base(nbr / base, base, x); my_put_nbr_base(nbr % base, base, x); } else { if (nbr > 9 && x == 0) my_putchar(nbr + 87); else if (nbr > 9 && x == 1) my_putchar(nbr + 55); else my_putchar(nbr + 48); } }
void printboard(unsigned char *board) { int i; i = 0; while (i < MEM_SIZE) { if (board[i] < 16) my_putchar(' '); my_put_nbr_base(board[i], "0123456789abcdef"); i++; } my_putchar('\n'); }
int my_put_nbr_base(unsigned int nb, char *base) { int start; int end; int len; len = my_strlen(base); end = nb % len; start = (nb - end) / len; if (start != 0) { my_put_nbr_base(start, base); } my_putchar(base[end]); return (0); }
int my_put_nbr_base(int nb, char *base) { int result; int rest; if (nb < 0) { my_putchar('-'); nb = -nb; } result = nb / my_strlen(base); rest = nb % my_strlen(base); if (result > 0) my_put_nbr_base(result, base); my_putchar(base[rest]); return (0); }
int my_put_nbr_unsigned_hexa(unsigned long int nb) { return (my_put_nbr_base(16, nb, "0123456789abcdef")); }