* ft_substr은 파라미터로 문자열 s와 unsigned int start, size_t len을 갖는다.
* 문자열을 자를 때 이용하며, 문자열 s의 start번째부터 len길이만큼 문자열을 자르는 함수이다.
char *ft_substr(char const *s, unsigned int start, size_t len)
char const *s : 자를 대상이 되는 문자열
unsigned int start : s의 어디부터 자를 것인지 기준이 되는 정수
size_t len : s를 얼만큼 자를 것인지 기준이 되는 정수
start가 unsigned int 이므로, start와 값을 비교하는 변수는 unsigned int여야 한다.
자른 문자열은 malloc으로 할당되어야 하며, 자른 문자열의 가장 끝에는 '\0'이 존재해야 한다.
할당 실패 시 NULL을 반환한다.
#include "libft.h"
char *ft_substr(char const *s, unsigned int start, size_t len)
{
char *str;
unsigned int strindex;
unsigned int sindex;
sindex = 0;
strindex = 0;
if (!(str = (char*)malloc(sizeof(char) * (len + 1))))
{
return (NULL);
}
while (s[sindex] != '\0')
{
if (sindex >= start && strindex < len)
{
str[strindex++] = s[sindex];
}
sindex++;
}
str[strindex] = '\0';
return (str);
}
(1) 반환할 자른 문자열 str과 str의 index를 담당할 strindex, s의 index를 담당할 sindex 선언
(2) len + 1('\0' 포함)만큼 할당 실패 시 NULL 반환
(3) sindex가 start보다는 크고, strindex가 len보다 작을 때까지 str에 s를 넣기
(4) str의 마지막에 '\0'넣고 리턴