Skip to content
Marcos edited this page Oct 2, 2024 · 1 revision

La función ft_strchr busca la primera aparición del carácter c en la cadena s. Devuelve un puntero al primer lugar donde se encuentra el carácter o NULL si no se encuentra.

Explicación del comando man

STRCHR(3) (simplified)

NAME
    strchr -- locate character in string
SYNOPSIS
    char *strchr(const char *s, int c);
DESCRIPTION
    The strchr() function locates the first occurence of c (converted to a char) in the string pointed to by s. The terminating null character is considered to be part of the string; therefor if c is '\0', the function locate the terminating '\0'.
RETURN VALUES
    The function strchr() return a pointer to the located character, or NULL if the character does not appear in the string.

Explicación con mis palabras

La función strchr() busca en la cadena s el carácter c (pasado como entero pero convertido internamente a char). Si lo encuentra, devuelve un puntero a la primera aparición del carácter. Si no lo encuentra, devuelve NULL. Si c es el carácter nulo ('\0'), también se busca y se devuelve un puntero a la posición donde se encuentra el carácter nulo.

Implementación en C

Aquí te muestro mi implementación de la función ft_strchr en mi proyecto de Libft.

Código de ft_strchr

#include "libft.h"

char	*ft_strchr(const char *s, int c)
{
	int	i;

	i = 0;
	// Recorremos la cadena buscando el carácter
	while (s[i])
	{
		if (s[i] == (char)c)
			return ((char *)&s[i]); // Retornamos puntero a la primera aparición
		i++;
	}
	// Si llegamos al final y es '\0', retornamos puntero a '\0'
	if (s[i] == (char)c)
		return ((char *)&s[i]);
	return (NULL); // Si no se encuentra, devolvemos NULL
}

Main para probar ft_strchr

El siguiente código es un ejemplo de cómo puedes probar la función ft_strchr():

#include <stdio.h>

char	*ft_strchr(const char *s, int c);

int main(void)
{
	const char str[] = "Libft es genial!";
	char *result;

	result = ft_strchr(str, 'e'); // Busca la primera aparición de 'e'
	if (result)
		printf("Primera aparición de 'e' en: %s\n", result);
	else
		printf("'e' no encontrado.\n");

	result = ft_strchr(str, 'z'); // Busca un carácter que no existe
	if (result)
		printf("Primera aparición de 'z' en: %s\n", result);
	else
		printf("'z' no encontrado.\n");

	return 0;
}

Recomendaciones o ejemplos de uso

  • ¿Por qué usar strchr?
    strchr es útil cuando necesitas encontrar la primera aparición de un carácter en una cadena, como por ejemplo para dividir una cadena en partes o para localizar un delimitador específico.

  • ¿Cuándo usar strchr?
    Usa strchr cuando estés trabajando con cadenas largas y necesites identificar la ubicación de un carácter específico o delimitar partes de una cadena para su procesamiento. También es útil en algoritmos de análisis de cadenas o al trabajar con entradas de usuario donde buscas caracteres especiales.

Clone this wiki locally