ft_itoa.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /* ************************************************************************** */
  2. /* */
  3. /* ::: :::::::: */
  4. /* ft_itoa.c :+: :+: :+: */
  5. /* +:+ +:+ +:+ */
  6. /* By: bchanot <bchanot@students.42.fr> +#+ +:+ +#+ */
  7. /* +#+#+#+#+#+ +#+ */
  8. /* Created: 2015/11/25 15:33:13 by bchanot #+# #+# */
  9. /* Updated: 2018/04/17 11:49:53 by bchanot ### ########.fr */
  10. /* */
  11. /* ************************************************************************** */
  12. #include "libft.h"
  13. char *ft_itoa(long long int n)
  14. {
  15. int size;
  16. char *str;
  17. if (n == -2147483648)
  18. return (ft_strdup("-2147483648"));
  19. size = ft_nbrlen(n);
  20. if (!(str = (char *)ft_memalloc(sizeof(char *) * (size + 1))))
  21. return (NULL);
  22. if (n < 0)
  23. {
  24. str[0] = '-';
  25. n = -n;
  26. }
  27. str[size] = '\0';
  28. while (n >= 10)
  29. {
  30. str[size - 1] = n % 10 + 48;
  31. n = n / 10;
  32. size--;
  33. }
  34. str[size - 1] = n + 48;
  35. return (str);
  36. }