modified itoa and its headers

This commit is contained in:
hugogogo
2022-07-31 12:59:27 +02:00
parent 2a69e14db2
commit cbb1d12d54
6 changed files with 26 additions and 60 deletions

View File

@@ -1,59 +1,13 @@
# include <sstream>
#include <string.h>
# include <string.h>
static int eval_is_negative(int *n)
char* itoa(int n)
{
if (*n < 0)
{
*n = *n * -1;
return (1);
}
return (0);
}
std::stringstream strs;
char * str;
static int eval_digit_nbr(int n)
{
int digit_nbr;
if (n == 0)
return (1);
digit_nbr = 0;
while (n != 0)
{
digit_nbr++;
n = n / 10;
}
return (digit_nbr);
}
char *ft_itoa(int n)
{
// std::stringstream strs;
// std::string s;
//
// strs << n;
// s = strs.str();
// return ((char*)(s.c_str()));
int i;
char *str;
int is_negative;
if (n == -2147483648)
return (strdup("-2147483648"));
is_negative = eval_is_negative(&n);
i = eval_digit_nbr(n) + is_negative;
str = new char[i+1];
if (is_negative)
str[0] = '-';
str[i] = '\0';
while (i > 0 + is_negative)
{
i--;
str[i] = (n % 10) + '0';
n = n / 10;
}
strs << n;
str = (char*)(strs.str().c_str());
return (str);
}