Как лучше всего внедрять itoa и atoi? - PullRequest
0 голосов
/ 08 февраля 2019

Библиотека 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;
}

Я хотел бы посмотреть, как я могу получить для них код качества производства - как производительностьВыше не совсем соответствует стандартной библиотеке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...