Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
yabtaour
GitHub Repository: yabtaour/Minishell-42
Path: blob/main/utils/ft_itoa.c
1407 views
1
/* ************************************************************************** */
2
/* */
3
/* ::: :::::::: */
4
/* ft_itoa.c :+: :+: :+: */
5
/* +:+ +:+ +:+ */
6
/* By: ssabbaji <[email protected]> +#+ +:+ +#+ */
7
/* +#+#+#+#+#+ +#+ */
8
/* Created: 2022/07/26 18:17:37 by yabtaour #+# #+# */
9
/* Updated: 2022/09/30 14:46:53 by ssabbaji ### ########.fr */
10
/* */
11
/* ************************************************************************** */
12
13
#include "../minishell.h"
14
15
static char *ft_array(char *x, unsigned int number, long int len)
16
{
17
while (number > 0)
18
{
19
x[len--] = 48 + (number % 10);
20
number = number / 10;
21
}
22
return (x);
23
}
24
25
static long int ft_len(int n)
26
{
27
int len;
28
29
len = 0;
30
if (n <= 0)
31
len = 1;
32
while (n != 0)
33
{
34
len++;
35
n = n / 10;
36
}
37
return (len);
38
}
39
40
char *ft_itoa(int n)
41
{
42
char *x;
43
long int len;
44
unsigned int number;
45
int sign;
46
47
sign = 1;
48
len = ft_len(n);
49
x = (char *)malloc(sizeof(char) * (len + 1));
50
if (!x)
51
exit (1);
52
x[len--] = '\0';
53
if (n == 0)
54
x[0] = '0';
55
if (n < 0)
56
{
57
sign *= -1;
58
number = n * -1;
59
x[0] = '-';
60
}
61
else
62
number = n;
63
x = ft_array(x, number, len);
64
return (x);
65
}
66
67