• Está prohibido utilizar variables globales.
• Si necesita funciones auxiliares para escribir una función compleja, tendrá que definir esas funciones auxiliares en static, respetando la Norma.
• Suba todos los archivos a la raíz del repositorio.
• Use el comando ar para crear su librería, está prohibido usar el comando libtool.
Funciones de la libc
| Nombre de la función: | memset |
|---|---|
| Prototipo: | void *ft_memset(void *b, int c, size_t len); |
| Ficheros a entregar: | ft_memset.c |
| Parametros: | 1. Puntero al bloque de memoria (b). 2. El valor que desea ajustar. 3. El número de bytes que se establece en ese valor. |
| Valor de retorno: | Devuelve un puntero a un puntero a la zona de almacenamiento (b). |
| Descripción: | Copia el caracter c (un char sin signo) a los primeros n caracteres de (b). |
| Nombre de la función: | bzero |
|---|---|
| Prototipo: | void ft_bzero(void *s, size_t n); |
| Ficheros a entregar: | ft_bzero.c |
| Parametros: | 1. Puntero a una cadena para rellenar. 2. Numero de bytes que se van a poner a cero. |
| Valor de retorno: | No retorna valor. |
| Descripción: | Pone a cero los n primeros bytes de la cadena de bytes s. |
| Nombre de la función: | memcpy |
|---|---|
| Prototipo: | void *ft_memcpy(void *dst, const void *src, size_t n); |
| Ficheros a entregar: | ft_memcpy.c |
| Parametros: | 1. Puntero a una cadena de destino. 2. Puntero a una cadena de origen. 3. Numero de bytes que se van a copiar. |
| Valor de retorno: | Retorna un puntero a la cadena de caracteres dst |
| Descripción: | Copia n caracteres del area de la memoria de src en el area de la memoria de dst. |
| Nombre de la función: | memccpy |
|---|---|
| Prototipo: | void *ft_memccpy(void *dst, const void *src, int c, size_t n); |
| Ficheros a entregar: | ft_memccpy.c |
| Parametros: | 1. Puntero a una cadena de destino. 2. Puntero a una cadena de origen. 3. Último carácter que se va a copiar. 4. Numero de bytes que se van a copiar. |
| Valor de retorno: | Devuelve un puntero al siguiente carácter de dst tras c, o NULL si c no estaba en los n primeros caracteres de src. |
| Descripción: | Copia como mucho n bytes desde el área de memoria src al área de memoria dst, parando cuando se encuentra el carácter c. |
| Nombre de la función: | memmove |
|---|---|
| Prototipo: | void *ft_memmove(void *dst, const void *src, size_t len); |
| Ficheros a entregar: | ft_memmove.c |
| Parametros: | 1. Puntero a una cadena de destino. 2. Puntero a una cadena de origen. 3. Numero de bytes que se copiarán. |
| Valor de retorno: | Devuelve un puntero a la cadena dst. |
| Descripción: | Copia los primeros n caracteres del objeto apuntado por src al objeto apuntado por dst. Sin embargo, se asegura de que no estén superpuestos. |
| Nombre de la función: | memchr |
|---|---|
| Prototipo: | void *ft_memchr(const void *s, int c, size_t n); |
| Ficheros a entregar: | ft_memchr.c |
| Parametros : | 1. puntero al bloque de memoria para realizar una búsqueda. 2. Caracter que se va a buscar. 3. Número de caracteres que se comprobarán. |
| Valor de retorno: | Retorna un puntero al carácter localizado, o un puntero nulo si el carácter no apareció en el objeto. |
| Descripción: | Localiza la primera aparición del carácter c (convertido a unsigned char) en los primeros n caracteres (cada uno interpretado como un unsigned char) del objeto apuntado por s. |
| Nombre de la función: | memcmp |
|---|---|
| Prototipo: | int ft_memcmp(const void *s1, const void *s2, size_t n); |
| Ficheros a entregar: | ft_memcmp.c |
| Parametros: | 1. puntero al primer bloque de memoria. 2. puntero al segundo bloque de memoria. 3. Número de caracteres que se va a comparar. |
| Valor de retorno: | El valor devuelto indica la relación entre los búferes. <0 s1 es menor a s2 0 s1 es idéntica a s2 >0 s1 es mayor a s2 |
| Descripción: | Compara los caracteres de dos búferes de memoria. |
| Nombre de la función: | strlen |
|---|---|
| Prototipo: | size_t ft_strlen(const char *s); |
| Ficheros a entregar: | ft_strlen.c |
| Parametros: | 1. Cadena terminada en un valor nulo. |
| Valor de retorno: | Devuelve el nuúmero de caracteres de s ecepto el valor nulo. |
| Descripción: | Obtiene la longitud de una cadena |
| Nombre de la función: | strlcpy |
|---|---|
| Prototipo: | size_t ft_strlcpy(char *dst, const char *src, size_t dstsize); |
| Ficheros a entregar: | ft_strlcpy.c |
| Parametros: | 1. puntero al bloque de memoria de destino. 2. puntero al bloque de memoria de origen. 3. Número de caracteres que se van a copiar. |
| Valor de retorno: | Devuelve la longitutd total de la cadena que intenta crear. |
| Descripción: | Copia dstsize caracteres de la cadena src en la cadena dst. |
| Nombre de la función: | strlcat |
|---|---|
| Prototipo: | size_t ft_strlcat(char *dst, const char *src, size_t dstsize); |
| Ficheros a entregar: | ft_strlcat.c |
| Parametros: | 1. puntero al bloque de memoria de destino. 2. puntero al bloque de memoria de origen. 3. Número de caracteres que se van a concatenar. |
| Valor de retorno: | Devuelve el número de caracteres que intentó crear, la longitud inicial de dst + la longitud de src. |
| Descripción: | Concatena la cadena de caracteres src en la cadena dst limitada por dstsize. |
| Nombre de la función: | strchr |
|---|---|
| Prototipo: | char *ft_strchr(const char *s, int c); |
| Ficheros a entregar: | ft_strchr.c |
| Parametros: | 1. Puntero a una cadena de caracteres. 2. Caracter que se va a buscar. |
| Valor de retorno: | Devuelve la posición en la cadena (s) la primera ocurrencia del carácter c.Si no se encuentra devuelve un punyero nulo. |
| Descripción: | Buscar la primera ocurrencia de (c) en la cadena (s) y devuelve su posición. |
| Nombre de la función: | strrchr |
|---|---|
| Prototipo: | char *ft_strrchr(const char *s, int c); |
| Ficheros a entregar: | ft_strrchr.c |
| Parametros: | 1. Puntero a una cadena de caracteres. 2. Caracter que se va a buscar. |
| Valor de retorno: | Devuelve la posición en la cafena (s) la ultima ocutrencia de (c). Si no se encuentra el valor, la función devuelve un puntero nulo. |
| Descripción: | Busca la ultima ocurrencia de (c) en la cadena (s) y devuelve su posición. |
| Nombre de la función: | strnstr |
|---|---|
| Prototipo: | char *ft_strnstr(const char *haystack, const char *needle, size_t len); |
| Ficheros a entregar: | ft_strnstr.c |
| Parametros: | 1. Puntero a una cadena de caracteres donde buscar. 2. Puntero a una subcadena de caracteres a buscar. |
| Valor de retorno: | Devuelve -1 si no se encontro la subcadena dentro de la cadena o n si se encotro en la posicion n de la cadena. |
| Descripción: | Busca la secuencia de carácteres contenida en la subcadena en una cadena de texto. |
| Nombre de la función: | strncmp |
|---|---|
| Prototipo: | int ft_strncmp(const char *s1, const char *s2, size_t n); |
| Ficheros a entregar: | ft_strncmp.c |
| Parametros: | 1. Puntero a una cadena de caracteres 2. Puntero a otra cadena de caracteres. 3. Numero de caracteres que se va a comparar |
| Valor de retorno: | Devuelve 0 si las dos cadenas son iguales. Devuelve menor que cero si s1 es menor que s2. Devuelve mayor que cero si s1 es mayor que s2. |
| Descripción: | Compara la cadena s1 con la cadena s2 hasta el n carcater. |
| Nombre de la función: | atoi |
|---|---|
| Prototipo: | int ft_atoi(const char *str); |
| Ficheros a entregar: | ft_atoi.c |
| Parametros: | 1. Puntero a la cadena que se desea convertir |
| Valor de retorno: | Retorna el valor numérico de la cadena o 0 si no se puede convertir. |
| Descripción: | Convierte una cadena a su valor numérico (entero) |
| Nombre de la función: | isalpha |
|---|---|
| Prototipo: | int ft_isalpha(int c); |
| Ficheros a entregar: | ft_isalpha.c |
| Parametros: | 1. caracter a comprobar |
| Valor de retorno: | Devuelve 1 si c es un caracter alfabetico de a a z o de A a Z, decuelve 0 si no lo es. |
| Descripción: | Comprueba si el caracter c es un caracter alfabético |
| Nombre de la función: | isdigit |
|---|---|
| Prototipo: | int ft_isdigit(int c); |
| Ficheros a entregar: | ft_isdigit.c |
| Parametros: | 1. Caracter a comprobar. |
| Valor de retorno: | Devuelve 1 si el caracter c es un número de 0 a 9, decuelve 0 si no lo es. |
| Descripción: | Comprueba si el caracter c es un caracter numérico de (0 - 9) |
| Nombre de la función: | isalnum |
|---|---|
| Prototipo: | int ft_isalnum(int c); |
| Ficheros a entregar: | ft_isalnum.c |
| Parametros: | 1. Caracter a comprobar. |
| Valor de retorno: | Devuelve 1 si el caracter c es un caracter alfanumérico, devuelve 0 si no lo es. |
| Descripción: | Comprueba si el caracter c es un caracter alfanumérico (a - z) o (0 - 9) |
| Nombre de la función: | isascii |
|---|---|
| Prototipo: | int ft_isascii(int c); |
| Ficheros a entregar: | ft_isascii.c |
| Parametros: | 1. Caracter a comprobar. |
| Valor de retorno: | Devuelve 1 si el caracter c es un caracter de la tabla ascii, devuelve 0 si no lo es. |
| Descripción: | Comprueba si el carqcter c es un caracter existente en la tabla ascii. |
| Nombre de la función: | isprint |
|---|---|
| Prototipo: | int ft_isprint(int c); |
| Ficheros a entregar: | ft_isprint.c |
| Parametros: | 1. Caracter a comprobar |
| Valor de retorno: | Devuelve 1 si el caracter c es un caracter imprimible, devuelve 0 si no lo es. |
| Descripción: | Comprueba si el caracter c es un caracter imprimible. |
| Nombre de la función: | toupper |
|---|---|
| Prototipo: | int ft_toupper(int c); |
| Ficheros a entregar: | ft_toupper.c |
| Parametros: | 1. Caracter que se desea pasar a mayuscula |
| Valor de retorno: | Devuelve el caracter c en mayuscula |
| Descripción: | Convierte el caracter c en un caracter mayuscula. |
| Nombre de la función: | tolower |
|---|---|
| Prototipo: | int ft_tolower(int c); |
| Ficheros a entregar: | ft_tolower.c |
| Parametros: | 1. Caracter que se desea pasar a minuscula |
| Valor de retorno: | Devuelve el caracter c en minuscula. |
| Descripción: | Convierte el caracter c en un caracter minuscula. |
| Nombre de la función: | calloc |
|---|---|
| Prototipo: | void *ft_calloc(size_t count, size_t size); |
| Ficheros a entregar: | ft_calloc.c |
| Parametros: | 1. Numero de elementos. 2. Longitud en bytes de cada elemento. |
| Valor de retorno: | Devuelve un puntero al espacio asignado. |
| Funciones externas autorizadas: | malloc |
| Descripción: | Asigna una matriz en la memoria con elementos que se inicializan en 0. |
| Nombre de la función: | strdup |
|---|---|
| Prototipo: | char *ft_strdup(const char *s1); |
| Ficheros a entregar: | ft_strdup.c |
| Parametros: | 1. Punyero a una cadena de caracteres. |
| Valor de retorno: | Devuelve un puntero a la cadena duplicada, o NULL si no había bastante memoria. |
| Funciones externas autorizadas: | malloc |
| Descripción: | La función strdup() devuelve un puntero a una nueva cadena de caracteres que es un duplicado de la cadena apuntada por s. La memoria para la nueva cadena se obtiene automáticamente con malloc(3), y puede (y debe) liberarse con free(3). |
Funciones adicionales
| Nombre de la función: | ft_substr |
|---|---|
| Prototipo: | char *ft_substr(char const *s, unsigned int start, size_t len); |
| Ficheros a entregar: | ft_substr.c |
| Parametros: | 1. La cadena de la que se extrae la nueva cadena. 2. El índice del principio de la nueva cadena. 3. El tamaño máximo de la nueva cadena. |
| Valor de retorno: | La nueva cadena de caracteres. NULL si falla la reserva de memoria. |
| Funciones externas autorizadas: | malloc |
| Descripción: | Reserva memoria (con malloc(3)) y devuelve la cadena de caracteres que proviene de la cadena pasada como argumento. Esta nueva cadena comienza en el índice ’start’ y tiene como tamaño máximo ’len’. |
| Nombre de la función: | ft_strjoin |
|---|---|
| Prototipo: | char *ft_strjoin(char const *s1, char const *s2); |
| Ficheros a entregar: | ft_strjoin.c |
| Parametros: | 1. La cadena de caracteres prefijo. 2. La cadena de caracteres sufijo. |
| Valor de retorno: | La nueva cadena de caracteres. NULL si falla la reserva de memoria. |
| Funciones externas autorizadas: | malloc |
| Descripción: | Reserva memoria (con malloc(3)) y devuelve la nueva cadena de caracteres que resulta de la concatenación de ’s1’ y ’s2’. |
| Nombre de la función: | ft_strtrim |
|---|---|
| Prototipo: | char ft_strtrim(char const *s1, char const *set); |
| Ficheros a entregar: | ft_strtrim.c |
| Parametros: | 1. La cadena de caracteres que hay que depurar. 2. El set de referencia de caracteres que hay que retirar. |
| Valor de retorno: | La cadena de caracteres depurada. NULL si falla la reserva de memoria. |
| Funciones externas autorizadas: | malloc |
| Descripción: | Reserva memoria (con malloc(3)) y devuelve la cadena de caracteres que es una copia de ’s1’, sin los caracteres indicados en el ’set’ al principio y al final de la cadena de caracteres. |
| Nombre de la función: | ft_split |
|---|---|
| Prototipo: | char **ft_split(char const *s, char c); |
| Ficheros a entregar: | ft_split.c |
| Parametros: | 1. La cadena de caracteres que hay que trocear. 2. El carácter delimitador. |
| Valor de retorno: | La tabla con las nuevas cadenas de caracteres que resulten del troceado. NULL si falla la reserva de memoria. |
| Funciones externas autorizadas: | malloc |
| Descripción: | Reserva memoria (con malloc(3)) y devuelve una tabla de cadena de caracteres obtenida separando ’s’ con el carácter ’c’, que se utiliza como delimitador. La tabla debe terminar con NULL. |
| Nombre de la función: | ft_itoa |
|---|---|
| Prototipo: | char *ft_itoa(int n); |
| Ficheros a entregar: | ft_itoa.c |
| Parametros: | 1. El integer que hay que convertir. |
| Valor de retorno: | La cadena de caracteres que representa al integer. NULL si falla la reserva de memoria. |
| Funciones externas autorizadas: | malloc |
| Descripción: | Reserva memoria (con malloc(3)) y devuelve la cadena de caracteres que representa el integer pasado como argumento. Se deben gestionar los números negativos. |
| Nombre de la función: | ft_strmapi |
|---|---|
| Prototipo: | char *ft_strmapi(char const *s, char (*f)(unsigned int, char); |
| Ficheros a entregar: | ft_strmapi.c |
| Parametros: | 1. La cadena de caracteres sobre la que hay iterar. 2. La función que hay que aplicar a cada carácter. |
| Valor de retorno: | La cadena de caracteres que resulte de las aplicaciones sucesivas de ’f’. Devuelve NULL si falla la asignación. |
| Funciones externas autorizadas: | malloc |
| Descripción: | Aplica la función ’f’ a cada carácter de la de cadena de caracteres ’s’ para crear una nueva cadena de caracteres (con malloc (3)) que resulte de las aplicaciones sucesivas de ’f’. |
| Nombre de la función: | ft_putchar_fd |
|---|---|
| Prototipo: | void ft_putchar_fd(char c, int fd); |
| Ficheros a entregar: | ft_putchar_fd.c |
| Parametros: | 1. El carácter que hay que escribir. 2. El descriptor de fichero sobre el que hay que escribir. |
| Valor de retorno: | None |
| Funciones externas autorizadas: | write |
| Descripción: | Escribe el carácter ’c’ sobre el descriptor de fichero proporcionado. |
| Nombre de la función: | ft_putstr_fd |
|---|---|
| Prototipo: | void ft_putstr_fd(char *s, int fd); |
| Ficheros a entregar: | ft_putstr_fd.c |
| Parametros: | 1. La cadena de caracteres que hay que escribir. 2. El descriptor de fichero sobre el que hay que escribir. |
| Valor de retorno: | None |
| Funciones externas autorizadas: | write |
| Descripción: | Escribe la cadena de caracteres ’s’ sobre el descriptor de fichero proporcionado. |
| Nombre de la función: | ft_putendl_fd |
|---|---|
| Prototipo: | void ft_putendl_fd(char *s, int fd); |
| Ficheros a entregar: | ft_putendl_fd.c |
| Parametros: | 1. La cadena de caracteres que hay que escribir. 2. El descriptor de fichero sobre el que hay que escribir. |
| Valor de retorno: | None |
| Funciones externas autorizadas: | write |
| Descripción: | Escribe la cadena de caracteres ’s’ sobre el descriptor de fichero proporcionado, seguida de un salto de línea. |
| Nombre de la función: | ft_putnbr_fd |
|---|---|
| Prototipo: | void ft_putnbr_fd(int nb, int fd); |
| Ficheros a entregar: | ft_putnbr_fd.c |
| Parametros: | 1. El entero que hay que escribir. )2. El file descriptor sobre el que hay que escribir. |
| Valor de retorno: | None |
| Funciones externas autorizadas: | write |
| Descripción: | Escribe el entero ’n’ sobre el descriptor de fichero proporcionado. |
Bonus
| Nombre de la función: | ft_lstnew |
|---|---|
| Prototipo: | t_list *ft_lstnew(void *content); |
| Ficheros a entregar: | ft_lstnew.c |
| Parámetros: | 1. El contenido del nuevo elemento. |
| Valor de retorno: | El elemento nuevo |
| Funciones externas autorizadas: | malloc |
| Descripción: | Reserva memoria (con malloc(3)) y devuelve un nuevo elemento. La variable ’content’ se inicializa mediante el valor del parámetro ’content’. La variable ’next’ se inicializa con NULL. |
| Nombre de la función: | ft_lstadd_front |
|---|---|
| Prototipo: | void ft_lstadd_front(t_list **alst, t_list *new); |
| Ficheros a entregar: | ft_lstadd_front.c |
| Parámetros: | 1. La dirección del puntero al primer elemento de la lista. 2. La dirección del puntero al elemento que hay que añadir a la lista. |
| Valor de retorno: | None |
| Descripción: | Añade el elemento ’new’ al principio de la lista. |
| Nombre de la función: | ft_lstsize |
|---|---|
| Prototipo: | int ft_lstsize(t_list *lst); |
| Ficheros a entregar: | ft_lstsize.c |
| Parámetros: | 1. Principio de la lista. |
| Valor de retorno: | Tamaño de la lista. |
| Funciones externas autorizadas: | None |
| Descripción: | Cuenta el número de elementos de la lista. |
| Nombre de la función: | ft_lstlast |
|---|---|
| Prototipo: | t_list *ft_lstlast(t_list *lst); |
| Ficheros a entregar: | ft_lstlast.c |
| Parámetros: | 1. Principio de la lista. |
| Valor de retorno: | Último elemento de la lista |
| Descripción: | Devuelve el último elemento de la lista. |
| Nombre de la función: | ft_lstadd_back |
|---|---|
| Prototipo: | void ft_lstadd_back(t_list **lst, t_list *new); |
| Ficheros a entregar: | ft_lstadd_back.c |
| Parámetros: | 1. La dirección del puntero al primer elemento de la lista. 2. La dirección del puntero al elemento que hay que añadir a la lista. |
| Valor de retorno: | None |
| Descripción: | Añade el elemento ’new’ al final de la lista. |
| Nombre de la función | ft_lstdelone |
|---|---|
| Prototipo: | void ft_lstdelone(t_list *lst, void (del)(void)); |
| Ficheros a entregar: | ft_lstdelone.c |
| Parámetros: | 1. El elemento cuya memoria se debe liberar. 2. La dirección de una función utilizada para borrar el contenido del elemento. |
| Valor de retorno: | None |
| Funciones externas autorizadas: | free |
| Descripción: | Libera la memoria del elemento pasado como argumento utilizando la función ’del’ y después free(3). No se debe liberar la memoria de ’next’. |
Uso
Para usar la libreria libft necesitamos:
-
Incluir en el main #include "libft.h"
-
Compilar la libreria con "make"
-
Compilar el programa de salida con "make program"