Example #1
0
void						ft_ech_expr(const char *str)
{
	char					argatoi[4];

	*(3 + argatoi) = 0;
	if ((*str == 'x' || ft_isdigit(*str)) && ft_ishex(*(1 + str))
										   && ft_ishex(*(2 + str)))
	{
		*(argatoi) = (*str == 'x') ? '0' : *str;
		*(1 + argatoi) = *(1 + str);
		*(2 + argatoi) = *(2 + str);
		if (*str == 'x')
			(void) ft_putchar(ft_evalhex(argatoi));
		else
			(void) ft_putchar(ft_atoi(argatoi));
	}
	else
	{
		(void) ft_putchar('\\');
		(void) ft_putchar(*(str));
		(void) ft_putchar(*(1 + str));
		(void) ft_putchar(*(2 + str));
	}
	return ;
}
Example #2
0
int			ft_atoi_base(const char *str, int base)
{
	int	signe;
	int	re;
	int	i;
	int	num;
	int	p;

	i = 0;
	p = ft_strlen(str) - 1;
	re = 0;
	signe = 1;
	ft_prep(str, &i, &signe);
	while (str[i] != '\0' && (num = ft_ishex(str[i])) != -1)
	{
		re = re + (ft_power(base, p) * num);
		i++;
		p--;
	}
	if (num == -1)
		return (-1);
	return (re * signe);
}
Example #3
0
static int			htoi(char *hex, int l)
{
	if (*hex == 0)
		return (l);
	return (htoi(hex + 1, l * 16 + ft_ishex(*hex)));
}