tgrekov-libft
HIVE libft Oct 2023
Loading...
Searching...
No Matches
ft_substr.c
Go to the documentation of this file.
1/* ************************************************************************** */
2/* */
3/* ::: :::::::: */
4/* ft_substr.c :+: :+: :+: */
5/* +:+ +:+ +:+ */
6/* By: tgrekov <tgrekov@student.hive.fi> +#+ +:+ +#+ */
7/* +#+#+#+#+#+ +#+ */
8/* Created: 2023/10/25 16:35:17 by tgrekov #+# #+# */
9/* Updated: 2023/11/09 20:54:14 by tgrekov ### ########.fr */
10/* */
11/* ************************************************************************** */
12
20#include "libft.h"
21
32char *ft_substr(char const *s, unsigned int start, size_t len)
33{
34 size_t s2_len;
35 char *s2;
36
37 if (!s)
38 return (0);
39 s2_len = ft_strlen(s);
40 if (s2_len < start)
41 return (ft_calloc(1, 1));
42 s2_len = s2_len - start;
43 if (s2_len > len)
44 s2_len = len;
45 s2 = malloc(s2_len + 1);
46 if (!s2)
47 return (0);
48 ft_strlcpy(s2, s + start, s2_len + 1);
49 return (s2);
50}
void * ft_calloc(size_t count, size_t size)
Allocates count * size bytes with malloc and returns a pointer to the result.
Definition ft_calloc.c:34
size_t ft_strlcpy(char *dst, const char *src, size_t dstsize)
Copy at most dstsize - 1 characters from string src into dst.
Definition ft_strlcpy.c:36
size_t ft_strlen(const char *str)
Get length of str.
Definition ft_strlen.c:28
char * ft_substr(char const *s, unsigned int start, size_t len)
Allocates and returns a substring of s, starting at s + start, and ending no later than s + start + l...
Definition ft_substr.c:32