ft_substr - chanhl22/libft GitHub Wiki

 14 #include "libft.h"
 15 
 16 char    *ft_substr(char const *s, unsigned int start, size_t len)
 17 {
 18     size_t  i;
 19     size_t  j;
 20     char    *ptr;
 21 
 22     if (s == NULL) //하위문자열이 null이라면 null반환
 23         return (NULL);
 24     if (!(ptr = (char*)malloc(sizeof(*s) * (len + 1)))) ////복사해줄 새로운 메모리를 할당해줌, 만들어진 문자열이 null이라면 null반환
 25         return (NULL);
 26     i = 0;
 27     j = 0;
 28     while (s[i] != '\0') //우선 s문자열을 끝까지 확인한다.
 29     {
 30         if (j < len && i >= start) //2가지 조건을 만족시켜야함
        1. len만큼 문자열을 반환(마지막에 \0을 붙이는데 붙이기전에 크기를 맞춰줘야한다.
        2. start가 문자열보다 클때를 생각해줘야한다.
           만약 start가 더 크다면 반복문으로 들어가지 않는다.
 31         {
 32             ptr[j] = s[i];  //복사해준다.
 33             j++;  //변수를 증가시키는데 반환할 총 크기이다.
 34         }
 35         i++;
 36     }
 37     ptr[j] = '\0'; //마지막에 널 추가
 38     return (ptr); //포인터 반환
 39 }
⚠️ **GitHub.com Fallback** ⚠️