jun 18, 2009
Enviado por Kalith 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
- Sumar numeros muy grandes c++ Buenas. Resolviendo un pequeño problema me encontre con que debía...
- Intento de grep en c++ Buenas. Necesitaba este pequeño programita para algo que estoy haciendo,...
- Enviar emails con Visual C++ .NET Despues de tiempo sin escribir (ya se me acabaron las...
- Balanceo de expresiones usando pilas en c++ Buenas El balanceo de expresiones (no se con que otro...
- 500! Buenas. Hace unos días en un post sobre permutaciones dabamos...
- Barra de progreso con ncurses Buenas. Pues eso una barra de progresos, no crean que...



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 =*
Usandoaunq para mi seria mas facil el __atoi usando sstream algo asi
#include
#include
using namespace std;
int __atoi(string number){
Usandoint outp;
istringstream tmp;
tmp.str(number);
tmp >> outp;
return outp;
}