[42seoul] ft_substr은 어떤 함수일까??

개발하는 곰댕이·2021년 4월 10일
0

42Seoul

목록 보기
30/45

함수원형

char	*ft_substr(char const *s, unsigned int start, size_t len)

인자

  • s
    우리가 떼어내고싶은 문자열이 있는 원본 문자열이다.
  • start
    떼어내고 싶은 문자열의 시작 인덱스
  • len
    떼어내고싶은 문자열의 길이

1. ft_substr이란??

substr은 원본 문자열 s에서 하위 문자열을 하나 만들어서 리턴해주는 함수이다. 하위 문자열은 start에서부터 len만큼의 길이를 갖고 있다.

substr을 사용할때 주의할 점이 몇 가지 있다.

첫 번째는 원본 문자열 s가 NULL일때.

두 번째는 원본 문자열 s의 길이가 start이하일때.

세 번째는 len이 0일때.

이 세가지의 상황은 빈 문자열을 할당해서 리턴이 된다.

그 이외의 정상적인 상황이라면 len + 1만큼 할당이 되고 해당 문자열을 복사해서 리턴해준다.

동적할당을 사용했기 때문에 메모리 누수에 주의하자.

2. 사용 예제


문자열 "123456789"에서 나는 "456"만 쓰고싶다면 '4'의 인덱스인 3을 start로 주고 "456"의 길이인 3을 len으로 준다면 내가 원하는 문자열 "456"이 새롭게 할당이 되어서 리턴이 된다.

3. 리턴값

원본 문자열에서 내가 원하는 부분만 잘라서 새롭게 할당한 후 할당된 문자열의 포인터를 리턴해 준다.

0개의 댓글