Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.99 KB | None | 0 0
  1. static    int            ft_itoa_size(int n)
  2. {
  3.     int                size;
  4.     int                neg;
  5.  
  6.     size = 0;
  7.     neg = 0;
  8.     if (n < 0 && n > -2147483648)
  9.     {
  10.         neg = 1;
  11.         size++;
  12.         n = -n;
  13.     }
  14.     else if (n == 0)
  15.         return (1);
  16.     else if (n == -2147483648)
  17.         return (11);
  18.     while (n >= 1)
  19.     {
  20.         n /= 10;
  21.         size++;
  22.     }
  23.     return (size);
  24. }
  25.  
  26. char *ft_itoa(int n)
  27. {
  28.     char *str;
  29.     int                i;
  30.     int                size;
  31.     int                neg;
  32.     unsigned int    tmp;
  33.  
  34.     size = ft_itoa_size(n);
  35.     neg = (n < 0 ? 1 : 0);
  36.     i = 1;
  37.     if (!((str = (char *)malloc(sizeof(char) * ft_itoa_size(n) + 1))))
  38.         return (0);
  39.     tmp = (n < 0 ? -n : n);
  40.     if (tmp == 0)
  41.         str[tmp] = '0';
  42.     while (tmp >= 1)
  43.     {
  44.         str[size - i] = (tmp % 10) + '0';
  45.         tmp /= 10;
  46.         i++;
  47.     }
  48.     if (neg)
  49.         *str = '-';
  50.     str[size] = '\0';
  51.     return (str);
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement