El proyecto Printf forma parte del currículum de 42 y tiene como objetivo implementar una versión personalizada de la función estándar printf de la biblioteca C estándar. Este proyecto ayuda a comprender el manejo de cadenas, la gestión de memoria, y la manipulación de argumentos variables.
El objetivo principal es recrear el comportamiento de la función printf permitiendo el uso de especificadores de formato básicos. La implementación debe ser eficiente y cumplir con los requisitos establecidos por el proyecto.
- Soporte para los siguientes especificadores de formato:
%c: Imprime un carácter.%s: Imprime una cadena.%d/%i: Imprime un número entero con signo en base 10.%u: Imprime un número entero sin signo en base 10.%x/%X: Imprime un número en formato hexadecimal (minúsculas/mayúsculas).%%: Imprime el carácter%.
- No se permite usar la función original
printf. - Deben manejarse casos extremos como cadenas vacías, enteros negativos, y números grandes.
- Se debe garantizar un comportamiento robusto ante entradas incorrectas.
printf/
├── srcs/ # Código fuente principal
├── includes/ # Archivos de cabecera
├── tests/ # Casos de prueba
├── Makefile # Sistema de compilación
└── README.md # Documentación
-
Clona el repositorio:
git clone https://github.com/cacharri/printf.git cd printf
-
Compila el proyecto:
make
-
Incluye la biblioteca generada en tu proyecto:
- Compila tu archivo de prueba junto con
libftprintf.a:gcc -o test test.c libftprintf.a
- Compila tu archivo de prueba junto con
-
Ejecuta tu programa de prueba:
./test
- Manejo eficiente de argumentos variables con
va_list. - Soporte para múltiples especificadores de formato.
- Diseño modular para facilitar la comprensión y el mantenimiento del código.