ft_substr

Subject

Nome da função: ft_substr

Protótipo: char *ft_substr(char const *s, unsigned int start, size_t len);

Parâmetros:

  • #1. A string para criar a substring.
  • #2. O indice de inicio da substring na string ‘s’.
  • #3. O tamanho máximo da substring.

Retorno: A substring. NULL se a alocação falhar.

Funções externas: malloc

Descrição: Alocar (com malloc(3)) e retornar a substring da string ‘s’. A substring começa no índice ‘start’ e seu tamanho máximo é ‘len’.

Rascunho

Digamos que criamos uma string str = “Otorrinolaringologista”:

e depois fazemos a seguinte chamada: ft_substr(str, 9, 10). A saída esperada deverá ser:

Começando no ‘a’ pois era a nona posição e terminando em 10 por ser o tamanho máximo.

Em código

char	*ft_substr(char const *s, unsigned int start, size_t len)
{
	size_t			index;
	unsigned int	count;
	char			*aux;
	char			*resp;

	aux = (char *)s;
	count = 0;
	index = 0;
	if (!(resp = malloc(sizeof(char) * len + 1))) //tento alocar
		return (NULL); //se a alocação falhar
	while (aux[count] && count < start) //enquanto não chegar no start
		count++;
	while (aux[count] && index < len) //enquanto eu não copiar 'len'
	{                                 //elementos
		resp[index] = aux[count]; //copio os elementos para a
		index++;                  //substring
		count++;
	}
	resp[index] = '\0';
	return (resp); //retornando o endereço da substring
}

Deixe um comentário