Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* *************************************************************************** */
- /* */
- /* ::: :::::::: */
- /* ft_putnbr.c :+: :+: :+: */
- /* +:+ +:+ +:+ */
- /* by: adhenain <ambroise.dhenain@gmail.com> +#+ +:+ +#+ */
- /* +#+#+#+#+#+ +#+ */
- /* Created: 2013/07/18 17:37:19 by adhenain #+# #+# */
- /* Updated: 2013/07/18 19:08:13 by adhenain ### ########.fr */
- /* */
- /* *************************************************************************** */
- int ft_putchar(char c);
- int ft_get_int_size(int nb)
- {
- int size;
- if (nb < 0)
- {
- nb = nb * -1;
- }
- size = nb > 0 ? 0 : 1;
- while (nb > 0)
- {
- nb /= 10;
- size++;
- }
- return size;
- }
- int ft_get_first_char(int val, int size)
- {
- int divider;
- int increment;
- if (val == 0)
- {
- return 0;
- }
- divider = 1;
- increment = 0;
- while (increment < size - 1)
- {
- divider *= 10;
- increment++;
- }
- return val / divider;
- }
- void ft_manage_negative(int *nb)
- {
- if (*nb == -2147483648)
- {
- ft_putchar('-');
- ft_putchar('2');
- ft_putchar('1');
- ft_putchar('4');
- ft_putchar('7');
- ft_putchar('4');
- ft_putchar('8');
- ft_putchar('3');
- ft_putchar('6');
- ft_putchar('4');
- *nb = 8;
- }
- if (*nb < 0)
- {
- *nb *= -1;
- ft_putchar('-');
- }
- }
- void ft_putnbr(int nb)
- {
- int size;
- int fake_char;
- int minus;
- int i;
- ft_manage_negative(&nb);
- size = ft_get_int_size(nb);
- while (size > 0)
- {
- fake_char = ft_get_first_char(nb, size);
- minus = fake_char;
- i = size - 1;
- while (i > 0)
- {
- minus *= 10;
- i--;
- }
- minus = minus == 0 ? size * fake_char : minus;
- nb -= minus;
- ft_putchar(48 + fake_char);
- size--;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement