Skip to content

zafraedu/42-libft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

header libft


AboutHow to useMandatoryBonusNorminetteLicense

ABOUT

El primer proyecto en 42, libft, consiste en aprender cómo funcionan las funciones estándar de la programación C escribiéndolas desde cero y creando una biblioteca personal. Este proyecto es vital ya que la biblioteca se utilizará en asignaciones futuras en 42. Tendrás que programar una librería en C. Tu librería tendrá un montón de funciones de propósito general en las que se apoyarán tus programas.

Click aquí para ver el PDF del proyecto

HOW TO USE

Compilation

Clonar el repositorio

git clone https://github.com/zafraedu/42-libft.git
cd 42-libft
make

Para usar en tu código, incluye el encabezado

#include "/libft.h" 

Reemplaza /libft.h por la ruta exacta donde se encuentra la librería en tu proyecto.

Makefile Rules

  • make - Compila los archivos mandatory de libft y genera libft.a;
  • make bonus - Compila los archivos bonus y los agrega al libft.a;
  • make clean - Eliminas todos los objetos (*.o) generados al compilar;
  • make fclean - Elimina todos los objetos más el libft.a;
  • make re - usa make fclean + make;

MANDATORY

Funciones libc

Deberás rehacer algunas funciones de la libc. Tus funciones tendrán los mismos prototipos e implementarán los mismos comportamientos que las funciones originales.

Deberán ser tal y como las describe el man, la única diferencia será la nomenclatura: empezarán con el prefijo ft_.

Function Description
ft_isalpha verifica si el caracter c es alfabetico
ft_isdigit verifica si el caracter c es numerico
ft_isalnum verifica si el caracter c es alfabetico o numerico
ft_isascii verifica si el caracter c está en la tabla ascii
ft_isprint verifica si el caracter c es imprimible
ft_strlen calcula la longitud de la cadena str
ft_memset cambia los valores de los size primeros datos de str por c
ft_bzero convierte en nulo los valores de los size primeros datos de str
ft_memcpy copia los primeros size valores de str por c
ft_memmove copia los primeros size valores de src a dest (hasta si se superponen)
ft_srtlcpy copia los primeros size caracteres de src a dest
ft_strlcat concatena src en dest hasta que este llegue a su maximosize
ft_toupper convierte el caracter c en mayuscula
ft_tolower convierte el caracter c en minuscula
ft_strchr busca la primera aparición del caracter c en la cadena str
ft_strrchr busca la última aparición del caracter c en la cadena str
ft_strncmp compara los primeros size de caracteres de las cadenas s1 y s2
ft_memchr busca la primera aparición del byte c en str hasta el tamaño maximosize
ft_memcmp compara los primeros size de datos de s1 y s2
ft_strnstr busca la primera aparición de la subcadena needle en la cadena haystack
ft_atoi convierte str en un int
ft_calloc asigna Mermoria Dinamica a una string empezada por datos nulos
ft_strdup asigna MD a una string que contien str

Funciones adicionales

Deberás desarrollar un conjunto de funciones que, o no son de la librería *libc, o lo son pero de una forma distinta.

Implementarás las siguientes funciones:

Function Description
ft_substr asigna MD a una string creada a partir del indicestart de s con la longitudlen
ft_strjoin asigna MD a una string creada a partir de la concatenación de s1 cocn s2
ft_strtrim asigna MD a una string que contiene str sin los caracteres set
ft_split asigna MD a un array de strings al separar la string s en substrings con el caracter c como delimitador
ft_itoa convierte un n int a una string MD
ft_striteri aplica la función f en cada caracter de la cadena s
ft_putchar_fd imprime el caracter c al fd
ft_putstr_fd imprime la string s al fd
ft_putendl_fd imprime s al fd con un salto de linea al final
ft_putnbr_fd imprime el numero n al fd

MD - Memoria Dinamica fd - file descriptor

BONUS

Las funciones para manipular memoria y strings son muy útiles... Pero pronto descubrirás que la manipulación de listas lo es incluso más.

Deberás utilizar la siguiente estructura para representar un nodo de tu lista.

Estructura

Añade la declaración a tu archivo libft.h:

typedef struct s_list
{
    void            *content;
    struct s_list   *next;
} t_list;
  • content: la información contenida por el nodo, que permite guardar cualquier tipo de información.
  • next: la dirección del siguiente nodo, o NULL si nodo es el último.

Funciones bonus

Implementa las siguientes funciones para manipular listas:

Function Description
ft_lstnew crea un nuevo nodo y establece su contenido content y puntero siguiente next
ft_lstadd_front añade el nodo new al principio de la lista *lst
ft_lstsize cuenta el numero de nodos que hay en la lista *lst
ft_lstlast va al ultimo nodo de la lista*lst
ft_lstadd_back añade el nodo new al final de la lista **lst
ft_lstdelone elimina el nodo de una lista y libera la memoria asociada a dicho nodo
ft_lstclear elimina todos los nodos de una lista y libera la memoria asociada a dichos nodos
ft_lstiter aplica la función a cada elementocontent de la lista enlazadalst
ft_lstmap crea una nueva lista enlazada aplicando la funcion f a cada elemento de la lista original

NORME

En 42 School, se espera que casi todos los proyectos se escriban de acuerdo con la Norma, que es el estándar de codificación de la escuela.

- No for, do...while, switch, case, goto, ternary operators and variable-length arrays are allowed
- Each function must be a maximum of 25 lines, not counting the function's curly brackets
- Each line must be at most 80 columns wide, comments included
- A function can take 4 named parameters maximum
- No assigns and declarations in the same line (unless static)
- You can't declare more than 5 variables per function
- ...

42 NORMA información sobre las normas de código de 42. PDF

LICENSE

Este trabajo se publica bajo los términos de 42 Unlicense.

About

Libft es el primer proyecto de 42, donde se recrean funciones estándar de C para construir una biblioteca personal reutilizable en futuros proyectos.

Topics

Resources

Stars

Watchers

Forks