Библиотека C / C ++ поставляется с двумя функциями, а именно «itoa» и «atoi» - первая преобразует целочисленное значение в массив символов.Последний делает наоборот для строки массива символов, содержащего числовое значение.Числовые значения в любой функции могут быть как положительным целым, так и отрицательным.
Я реализовал функции следующим образом: - функция itoa
#include <iostream>
#include <algorithm>
void my_itoa(int num, char* str)
{
bool isNeg=false;
if(num < 0)
isNeg = true;
int idx = 0;
do {
int j = num % 10;
j = j < 0 ? j * -1 : j ;
str[idx++]=j+48;
num=num/10;
} while (num!=0);
if(isNeg)
str[idx++]='-';
str[idx]='\0';
std::reverse(str, str+idx);
}
Функция Atoi
void my_atoi(char* str,int& i)
{
bool isNeg = false;
if(*str == '-') {
isNeg=true;
str++;
}
i=0;
while(*str!='\0') {
i =i*10 + (*str - 48);
str++;
}
if(isNeg)
i=i*-1;
}
Код драйвера
int main()
{
char str[100];
my_itoa(-1234, str);
std::cout << "Str =" << str << std::endl;
int j=0;
my_atoi(str,j);
std::cout << "j= " << j << std::endl;
return 0;
}
Я хотел бы посмотреть, как я могу получить для них код качества производства - как производительностьВыше не совсем соответствует стандартной библиотеке.