char *ft_ltoa(long n) { int count; long signe; char *result; count = ft_longlen(n); signe = 1; if (!n) return (ft_strdup("0")); if (n < 0) { signe = -1; result = (char *)malloc(sizeof(char) * ft_longlen(n) + 2); count++; result[0] = '-'; } else result = (char *)malloc(sizeof(char) * ft_longlen(n) + 1); result[count] = '\0'; while (n != 0) { result[count - 1] = (n % 10) * signe + 48; n = n / 10; count--; } return (result); }
int ft_longlen(long n) { unsigned long b; if (n < 0) b = -n; else b = n; return ((b > 9) ? ft_longlen((long)b / 10) + 1 : 1); }