blob: 05f3faebe2465f8e2e88ece26ce0da8c997e936c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#include "libft.h"
#include <stdlib.h>
static size_t
_s_numlen (int n)
{
size_t len;
len = 1;
if (n < 0)
len++;
while (n / 10)
{
len++;
n /= 10;
}
return (len);
}
char *
ft_itoa (int n)
{
size_t len;
char *str;
unsigned int nb;
len = _s_numlen (n);
str = malloc (len + 1);
if (!str)
return (NULL);
str[len] = '\0';
if (n < 0)
{
str[0] = '-';
nb = -n;
}
else
nb = n;
while (len > 0 && str[len - 1] != '-')
{
str[--len] = '0' + nb % 10;
nb /= 10;
}
return (str);
}
|