ft_putstr(char *str)
{
int s;
s = 0;
while (str[s] != ‘\0’)
{
ft_putchar(str[s]);
++s;
}
}
void ft_putnbr(int nb)
{
if (nb == - 2147483648)
{
ft_putstr(“-2147483648”);
return;
}
if (nb < 0)
{
nb*= - 1;
ft_putchar(‘-’);
}
if (nb <= 9)
ft_putchar(nb + 48);
else
{
ft_putnbr(nb / 10);
ft_putchar((nb % 10) + 48);
}
}
int main()
{
ft_putnbr(-2147483648);
return (0);
}
Можно как-то упростить это?
если можно использовать дополнительный буфер, я бы переписал код так void ft_putnbr(int i) { char buffer[32] = {0}; char *end = buffer + sizeof(buffer); char *begin = end; int r = i; while (r) { int d = (r % 10); *--begin = '0' + (d < 0 ? -d : d); r /= 10; } if (i < 0) { *--begin = '-'; } write(1, begin, end - begin); }
Обсуждают сегодня