/ libft / ft_substr.c
ft_substr.c
 1  /* ************************************************************************** */
 2  /*                                                                            */
 3  /*                                                        :::      ::::::::   */
 4  /*   ft_substr.c                                        :+:      :+:    :+:   */
 5  /*                                                    +:+ +:+         +:+     */
 6  /*   By: gychoi <marvin@42.fr>                      +#+  +:+       +#+        */
 7  /*                                                +#+#+#+#+#+   +#+           */
 8  /*   Created: 2022/07/09 15:52:19 by gychoi            #+#    #+#             */
 9  /*   Updated: 2022/07/15 15:02:21 by gychoi           ###   ########.fr       */
10  /*                                                                            */
11  /* ************************************************************************** */
12  
13  #include "libft.h"
14  
15  char	*ft_substr(char const *s, unsigned int start, size_t len)
16  {
17  	char		*substr;
18  	size_t		slen;
19  	size_t		i;
20  
21  	if (s == NULL)
22  		return (NULL);
23  	slen = ft_strlen(s);
24  	if (slen < len)
25  		len = slen;
26  	if (slen <= start)
27  		substr = ft_calloc(1, sizeof(char));
28  	else
29  		substr = ft_calloc(len + 1, sizeof(char));
30  	if (!substr)
31  		return (NULL);
32  	i = 0;
33  	if (slen > start)
34  	{
35  		while (i < len && s[start + i] != '\0')
36  		{
37  			substr[i] = s[start + i];
38  			i++;
39  		}
40  	}
41  	return (substr);
42  }