jun 18, 2009

Enviado por en Programacion

itoa y atoi

Buenas.
Ya de alguna ocasión Llyn hablo sobre una de estas funciones, aca lo que traigo es una pequeña implentación que hice de ambas trabajando directamente con strings (std::string) y pues es un ejemplo también claro de como convertir enteros a cadenas y viceversa
Bueno sin mas largas dejo el código, requiere usar dos liberias que si bien son sustituibles facilmente pues por mi comodidad las dejo así

#include <algorithm>
#include <cmath>

using namespace std;

string __itoa(int number)
{
	string ret = "";

	for(; number > 0; number -= number % 10, number /= 10)
		ret += (char)((number%10) + 0x30);

	reverse(ret.begin(), ret.end());

	return ret;
}

int __atoi(string number)
{
	int ret = 0;

	for(int i = 0, j = number.length() - 1; number[i] != '\0'; ++i, --j)
		ret += (number[i] - 0x30) * pow(10, (static_cast<double> (j)));

	return ret;
}

saludos, espero que sea util

    Posts Relacionados

    1. Es tan largo como lo que dura un peo en un chinchorro xD… Pero lo bueno, es que es pequeño pero interezante… JAJAJAJ SONO GAY =*

      Usando Unknown Unknown en Unknown Unknown
    2. aunq para mi seria mas facil el __atoi usando sstream algo asi

      #include
      #include
      using namespace std;

      int __atoi(string number){
      int outp;
      istringstream tmp;
      tmp.str(number);
      tmp >> outp;
      return outp;
      }

      Usando Unknown Unknown en Unknown Unknown

    Dejar una respuesta

    Debes ser Alojarse para enviar un comentario.