示例#1
0
char		*ft_transform_oux(t_flags *f, long long int arg, char *str)
{
	if (f->modifier == 'h' && f->ct != 'U')
		arg = (unsigned short)arg;
	else if (f->modifier == 'H' && f->ct != 'U' && f->ct != 'O')
		arg = (unsigned char)arg;
	else if (f->modifier == 'l')
		arg = (unsigned long)arg;
	else if (f->modifier == 'L')
		arg = (unsigned long long)arg;
	else if (f->modifier == 'j' && f->ct != 'U')
		arg = (unsigned long long)arg;
	else if (f->modifier == 'z')
		arg = (size_t)arg;
	else if (f->ct != 'U' && f->ct != 'O')
		arg = (unsigned int)arg;
	if (f->ct == 'o' || f->ct == 'O')
		str = ft_uitoa_base(arg, 8);
	else if (f->ct == 'u' || f->ct == 'U')
		str = ft_uitoa_base(arg, 10);
	else if (f->ct == 'x' || f->ct == 'X')
	{
		str = ft_uitoa_base(arg, 16);
		if (f->ct == 'X')
			ft_str_toupper(&str);
	}
	return (str);
}
示例#2
0
int				nbr_bytes_wchar(wchar_t s)
{
	unsigned int	wc;
	char			*str;

	wc = s;
	str = ft_uitoa_base(wc, 2);
	if (ft_strlen(str) <= 7)
		return (1);
	else if (ft_strlen(str) <= 11)
		return (2);
	else if (ft_strlen(str) <= 16)
		return (3);
	else
		return (4);
}
示例#3
0
static void		convert_arg(t_ullong arg, t_format *f)
{
	char		*tmp;

	if (f->mod_z)
		tmp = ft_uztoa_base((size_t)arg, 10);
	else if (f->mod_ll)
		tmp = ft_ulltoa_base(arg, 10);
	else if (f->mod_j || f->mod_l)
		tmp = ft_ultoa_base((t_ulong)arg, 10);
	else if (f->mod_h)
		tmp = ft_ustoa_base((t_ushort)arg, 10);
	else if (f->mod_hh)
		tmp = ft_uctoa_base((t_uchar)arg, 10);
	else
		tmp = ft_uitoa_base((t_uint)arg, 10);
	f->buf = ft_strdup(tmp);
	free(tmp);
}
示例#4
0
char		*render_opts_numeric_uitoa(t_opts *opts, uintmax_t n)
{
	char	*s;

	if (opts->type == 'o')
		s = ft_uitoa_base(n, 8);
	else if (opts->type == 'O')
		s = ft_uitoa_base(n, 8);
	else if (opts->type == 'x')
		s = ft_strtolower(ft_uitoa_base(n, 16));
	else if (opts->type == 'X')
		s = ft_uitoa_base(n, 16);
	else if (opts->type == 'u')
		s = ft_uitoa_base(n, 10);
	else if (opts->type == 'b')
		s = ft_uitoa_base(n, 2);
	else
		s = ft_uitoa_base(n, 10);
	return (s);
}