Programación General > C/C++

 convertir un int en char*

<< < (2/2)

ProfesorX:
Me alegra que te haya servido.

Bueno, se que probablemente ya lo terminaste, pero como ejercicio hice mi propia funcion para calcular la mascara, esta mas simplificada, y utiliza el operador << (corrimiento de bits a la izquierda) para calcular el valor, y sprintf para convertirlo a cadena, la dejo para ti y para quien en el futuro le pueda servir, estudiala y analizala.


--- Código: ---#include <cstdio>

char *calcularMascara(int ntipo)
{
    char *mask = new char[16];
    int a, b, c, d;
    a = b = c = d = 0;

    for (int i = 1; i <= ntipo; i++)
    {
        if (i <= 8)
            a = a + (1 << (8-i));
        else
            if (i <= 16)
                b = b + (1 << (16-i));
            else
                if (i <= 24)
                    c = c + (1 << (24-i));
                else
                    if (i <= 32)
                        d = d + (1 << (32-i));
    }

    sprintf(mask, "%03d.%03d.%03d.%03d", a, b, c, d);

    return mask;
}

int main()
{
    char *mascara;

    for (int i = 1; i <= 32; i++)
    {
        mascara = calcularMascara(i);
        printf("%s\n", mascara);

        delete mascara;
    }

    return 0;
}

--- Fin del código ---

Saudos :)

MindEye:
- Muchísimas gracias profesorX, gracias a tus indicaciones, no solo termine la función sino que además he aprendido algo nuevo.

- Hasta la próxima profesorX.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa