File tree Expand file tree Collapse file tree 2 files changed +65
-1
lines changed Expand file tree Collapse file tree 2 files changed +65
-1
lines changed Original file line number Diff line number Diff line change @@ -243,7 +243,8 @@ int main(int argc, char *argv[])
243
243
// fuckme(argv[2]);
244
244
if (argc == 2 )
245
245
fuckme (argv [1 ]);
246
- write (1 , "\n" , 1 );
246
+ else
247
+ write (1 , "\n" , 1 );
247
248
return (0 );
248
249
}
249
250
Original file line number Diff line number Diff line change
1
+ #include <stdlib.h>
2
+
3
+ int count_digits (unsigned int n , int base )
4
+ {
5
+ int len = 0 ;
6
+ if (n == 0 )
7
+ len ++ ;
8
+ while (n > 0 )
9
+ {
10
+ len ++ ;
11
+ n /= base ;
12
+ }
13
+ return (len );
14
+ }
15
+
16
+ char * ft_itoa_base (int value , int base )
17
+ {
18
+ char digit [16 ] = "0123456789ABCEDF" ;
19
+ unsigned int n = (value < 0 && base == 10 ) ? - value : value ;
20
+ int len = count_digits (n , base );
21
+ char * out = malloc (sizeof (char ) * (len + 1 ));
22
+
23
+ out [len ] = '\0' ;
24
+ if (base == 10 && value < 0 )
25
+ len ++ ;
26
+ if (value == 0 )
27
+ out [0 ] = '0' ;
28
+ if (value < 0 && base == 10 )
29
+ out [0 ] = '-' ;
30
+
31
+ int i = len ;
32
+ int digit_index ;
33
+ while (n != 0 )
34
+ {
35
+ i -- ;
36
+ digit_index = n % base ;
37
+ out [i ] = digit [digit_index ];
38
+ n /= base ;
39
+ }
40
+ return (out );
41
+ }
42
+
43
+ char * ft_itoa (int nbr )
44
+ {
45
+ return (ft_itoa_base (nbr , 10 ));
46
+ }
47
+
48
+ #ifdef TEST
49
+
50
+ #include <printf.h>
51
+ #include <limits.h>
52
+
53
+ int main (void )
54
+ {
55
+ int value = 0 ;
56
+ int base = 16 ;
57
+
58
+ printf ("%s\n" , ft_itoa_base (value , base ));
59
+ printf ("%s\n" , ft_itoa (value ));
60
+ return (0 );
61
+ }
62
+
63
+ #endif
You can’t perform that action at this time.
0 commit comments