-
Notifications
You must be signed in to change notification settings - Fork 0
strrchr
La función ft_strrchr busca la última aparición del carácter c en la cadena s. Devuelve un puntero a la última aparición del carácter o NULL si no se encuentra.
STRRCHR(3) (simplified)
NAME
strrchr -- locate character in string
SYNOPSIS
char *strrchr(const char *s, int c);
DESCRIPTION
The strrchr() function is identical to strchr(), except it locates the last occurence of c.
RETURN VALUES
The function strrchr() returns a pointer to the located character, or NULL if the character does not appear in the string.
La función strrchr() busca en la cadena s el carácter c (pasado como entero pero convertido internamente a char). Devuelve un puntero a la última aparición de ese carácter en la cadena. Si c es el carácter nulo ('\0'), también se busca y devuelve un puntero a esa posición. Si el carácter no se encuentra, devuelve NULL.
Aquí te muestro mi implementación de la función ft_strrchr en mi proyecto de Libft.
#include "libft.h"
char *ft_strrchr(const char *s, int c)
{
int i;
const char *result;
// Inicializamos el puntero result a NULL
i = 0;
result = NULL;
// Recorremos la cadena buscando la última aparición del carácter
while (s[i])
{
if (s[i] == (char)c)
result = &s[i]; // Guardamos la posición si encontramos el carácter
i++;
}
// Si el carácter es '\0', retornamos puntero al final de la cadena
if (s[i] == (char)c)
return ((char *)&s[i]);
else
// Si encontramos el carácter antes, devolvemos la última aparición
return ((char *)result);
}El siguiente código es un ejemplo de cómo puedes probar la función ft_strrchr():
#include <stdio.h>
char *ft_strrchr(const char *s, int c);
int main(void)
{
const char str[] = "Libft es genial!";
char *result;
result = ft_strrchr(str, 'e'); // Busca la última aparición de 'e'
if (result)
printf("Última aparición de 'e' en: %s\n", result);
else
printf("'e' no encontrado.\n");
result = ft_strrchr(str, 'z'); // Busca un carácter que no existe
if (result)
printf("Última aparición de 'z' en: %s\n", result);
else
printf("'z' no encontrado.\n");
return 0;
}
-
¿Por qué usar
strrchr?
strrchres útil cuando necesitas encontrar la última aparición de un carácter en una cadena, lo que puede ser importante cuando trabajas con delimitadores o procesas cadenas de texto al revés. -
¿Cuándo usar
strrchr?
Usastrrchrcuando necesites buscar la última aparición de un carácter en una cadena larga, o cuando quieras obtener el último delimitador en una cadena (por ejemplo, el último punto en una dirección de archivo o URL).