Files
ft_printf/libftprintf/ft_vprintf_hexadecimal.c
2022-04-26 17:53:39 +02:00

37 lines
1.3 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_vprintf_hexadecimal.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/01/20 11:55:33 by gbaconni #+# #+# */
/* Updated: 2022/04/26 17:33:12 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include "libftprintf.h"
int ft_vprintf_hexadecimal(const char *format, va_list ap)
{
int ret;
long l;
char *s;
char c;
int flags;
ret = 0;
l = va_arg(ap, long);
c = *format;
if (c == 'x')
s = ft_ltoa_base(l, "0123456789abcdef");
else
s = ft_ltoa_base(l, "0123456789ABCDEF");
flags = ft_vprintf_flags_bonus(format, ap);
if (flags & F_HASH)
ret += ft_puts("0x");
ret += ft_puts(s);
free(s);
return (ret);
}