char *ft_itoa(int nb) { int i; char *str; int isneg; if (nb == 0 || nb == -2147483648) return ((nb == 0) ? ft_strdup("0") : ft_strdup("-2147483648")); i = 0; isneg = 0; if (nb < 0) { i++; isneg = 1; nb = nb * (-1); } i = ft_itoa_count(nb) + i; str = malloc(sizeof(char) * i + 1); if (!str) return (NULL); str[i] = '\0'; while (nb) { str[--i] = (nb % 10) + '0'; nb = nb / 10; } return (ft_isneg(isneg, str)); }
char *ft_itoa(int n) { char *str; char *strtemp; size_t negative; size_t i; negative = (n < 0) ? 1 : 0; n = (negative) ? n : -n; i = (n) ? ft_itoa_count(n) : 1; if ((str = ft_strnew(i + negative)) == NULL) return (NULL); strtemp = str; if (negative) *str++ = '-'; str += i - 1; while (i-- > 0) { *str-- = -(n % 10) + 48; n /= 10; } return (strtemp); }