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
}