You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Alisson edited this page Aug 12, 2023
·
1 revision
ft_substr
ft_substr - return a new substring of string *s that begin at s[start] and have at most len of length.
If start doesn't exists in *s, we return an error. The error is a memory block of a single byte that is set to NULL, returned by ft_calloc.
See that new_str_len = ft_strlen(s + start), so if len < new_str_len we have to alocate only len bytes. Otherwise, mean that len > new_str_len and we have to allocate new_str_len. Alocate new_str_len to copy the string s[start] mean duplicate the string s[start], so I call ft_strdup(s + start).
char*ft_substr(charconst*s, unsigned intstart, size_tlen)
{
char*new_str;
size_tnew_str_len;
size_ts_len;
if (!s)
return (NULL);
s_len=ft_strlen(s);
if (start>s_len)
return ((char*)ft_calloc(1, sizeof(char)));
new_str_len=ft_strlen(s+start);
if (len<new_str_len)
{
new_str=ft_calloc(len+1, sizeof(char));
if (!new_str)
return (NULL);
ft_strlcpy(new_str, s+start, len+1);
return (new_str);
}
return (ft_strdup(s+start));
}