ft_memchr.c

Esta función permite localizar la primera ocurencia de un caracter. Esta función, se parece a 'strchr', salvo por que esta, funciona con cadenas de bytes (void *), en lugar de literales como (char *).

Enunciado

strncmp(3)

NOMBRE
    memchr --> localiza un byte en una cadena de bytes 
CABECERA
    void *memchr(const void *s, int c, size_t n);
DESCRIPCIÓN
    Localiza la primera aparición de `c`, convertido en un `unsigned char`, dentro de la cadena `s`
DEVOLUCIÓN
    Devuelve un puntero enfocado al byte encontrado, o en contrario `NULL` si este no es encontrado en `n` bytes.

Planteamiento

ft_memchr.c
#include "libft.h"

void *ft_memchr(const void *s, int c, size_t n) {
    /* definimos un contador y asignamos su valor predefinido
     * al tratar con este tipo de conversiones (void) a (char), deberemos convertir tanto `s` como `c` a caracteres literales que puedan ser comparados */
    /* iteramos sobre la cadena de bytes */
    while (/* el contador  es menor o igual a `n` */) {
        /* comprobamos si el caracter actual es igual al valor que recibimos */
        if (/* posición acual es igual a la conversión de `c` */) {
            return (/* puntero enfocado a la posición actual */);
        }
        /* preparamos la próxima iteración */
    }
    /* en caso de no ubicar coincidencia, devolvemos el valor prea `NULL` */
    return (NULL);
}

Información: recibir un tipo de datos 'void', significa recibimos una cadena de 'bytes' que puede ser extrapolada a cualquier otro tipo como por ejemplo 'char'.

Las variables de tipo 'void *', al ser cadenas de bytes, no disponen del habitual carácter núlo al final de estas, como suele ocurrir en los (char *). Es por eso que al tratar con ellas, lo haremos durante una cierta cantidad de 'bytes'.

Solución

Recuerda: para entregar tu proyecto, debes poder defenderlo. Por ello, resuelve cada enunciado con la respuesta que te parezca mas entendible a nivel presonal.

J: "No hay respuestas incorrectas, solo puntos de vista distantes".

Solución Base

Última actualización

¿Te fue útil?