Alejandro Sobrino - Jander

Sobre mí

itoa, una sencilla implementación

jander | 21 Febrero, 2007 08:26

La gran mayorí­a de las personas que programen en C conocerán la función atoi de la librerí­a stdlib que pasa un string a integer. Sin embargo, para la práctica de Laboratorio de Sistemas, el año pasado tení­amos que implementar la función contraria, itoa, y por si fuera poco, que tuviera soporte para trabajar con distintas bases. Navegando por Internet, descubrimos un código bastante decente, pero que con algunos números no presentaba un resultado correcto. Así que... si algo no funciona, mejóralo. Aquí­ está el resultado:

char *itoa (int val, int base)
{
    static char buf[32] = {0};
    int i = 30;
    if (val == 0)
        return "0";
    for(;val&&i;--i,val/=base)
        buf[i] = "0123456789ABCDEF"[val % base];
    return &buf[i+1];
}

Comentarios

Añadir comentario

Los comentarios son moderados para evitar spam. Esto puede hacer que tu escrito tarde un poco en ser visible.

Con soporte para Gravatares
 
Accessible and Valid XHTML 1.0 Strict and CSS
Powered by LifeType - Design by BalearWeb