1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /* ************************************************************************** */
- /* */
- /* ::: :::::::: */
- /* ft_itoa.c :+: :+: :+: */
- /* +:+ +:+ +:+ */
- /* By: mazimi <mazimi@student.42.fr> +#+ +:+ +#+ */
- /* +#+#+#+#+#+ +#+ */
- /* Created: 2014/12/09 14:15:57 by mazimi #+# #+# */
- /* Updated: 2015/03/04 12:00:31 by mazimi ### ########.fr */
- /* */
- /* ************************************************************************** */
- #include "libft.h"
- static char *ft_turn(char *src, int lon)
- {
- char *dest;
- int i;
- int j;
- dest = ft_strnew(lon);
- j = lon;
- i = -1;
- while (++i < lon)
- dest[i] = src[--j];
- return (dest);
- }
- static int intlen(int c)
- {
- int i;
- int lon;
- i = 1;
- if (c < 0)
- i++;
- lon = c;
- while (lon >= 10 || lon <= -10)
- {
- lon = lon / 10;
- i++;
- }
- return (i);
- }
- char *ft_itoa(int c)
- {
- int lon;
- char *str;
- char *dst;
- int cc;
- int i;
- if (c == -2147483648)
- return (ft_strdup("-2147483648"));
- cc = c;
- lon = intlen(c);
- str = ft_strnew(lon);
- if (c < 0)
- c = -c;
- i = -1;
- while (++i < lon)
- {
- str[i] = (c % 10) + 48;
- c = c / 10;
- }
- if (cc < 0)
- str[i - 1] = '-';
- dst = ft_turn(str, lon);
- return (dst);
- }
|