[libft] 함수들 간단 정리 (Part 2)

hyeojung·2021년 5월 16일
0

42Seoul

목록 보기
5/16
post-thumbnail

저번 글에 이어, 이번 글에서는 Part2 Additional functions를 다룬다.



ft_substr

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

s 문자열에서 start 인덱스부터 시작하는 len 길이만큼의 문자열을(널 문자 미포함) len+1 길이만큼의 새로운 메모리를 할당하여 복사해 반환하는 함수이다.

주의할 점은, s 문자열에 start 인덱스가 존재하지 않거나 (start > strlen(s)) 문자열의 start 인덱스에 있는 문자가 널 문자인 경우 (start = ft_strlen(s)) 에는 널 문자 하나만 들어 있는 문자열을 새로 할당해 반환해 주어야 한다는 점!


ft_strjoin

char *ft_strjoin(char const *s1, char const *s2);

메모리를 동적으로 할당한 문자열에 s1 문자열과 s2 문자열을 이어붙인 문자열을 복사하여 반환하는 함수이다.


ft_strtrim

char *ft_strtrim(char const *s1, char const *set);

set 문자열에 포함된 문자들을 s1 문자열의 앞과 뒤에서 제거한 후, 그 문자열을 동적 할당한 문자열에 복사하여 반환하는 함수.
문자열의 중간에서는 set 문자열에 포함된 문자들을 제거해서는 안된다는 점을 주의해야 한다.


ft_split

char **ft_split(char const *s, char c);

c 문자를 기준으로 s 문자열을 잘라, 잘린 문자열들을 동적으로 할당한 이차원 배열에 다시 동적으로 메모리를 할당해 차례대로 복사하여 반환해 주는 함수이다.

예를 들어 ft_split("hello-world-hihi", '-')와 같이 함수가 호출되었다면

return[i]문자열
return[0]hello
return[1]world
return[2]hihi

반환값 배열의 요소는 다음과 같다.


ft_itoa

char *ft_itoa(int n);

atoi 함수와는 반대로, 정수를 문자열로 변환해주는 함수이다.
필요한 문자열의 길이만큼 메모리를 동적 할당해 문자를 하나씩 채운 후 반환해주면 된다.


ft_strmapi

char *ft_strmapi(char const *s, char (*f)(unsigned int, char));

문자열 s와 길이가 같은 문자열을 동적 할당한 후, s의 각 인덱스마다(각 문자마다) 함수 f를 적용한 값을 동적 할당한 문자열에 넣어 반환하는 함수이다.
마지막에 널 문자를 넣는 걸 잊지 말자!


ft_putchar_fd

void ft_putchar_fd(char c, int fd);

파일 디스크립터가 가리키는 파일 또는 표준 입출력 스트림에 c 문자를 쓰거나 출력하는 함수.


ft_putstr_fd

void ft_putstr_fd(char *s, int fd);

ft_putchar_fd 함수와 같고, 쓰거나 출력하는 값이 문자열이라는 점만 다르다.


ft_putendl_fd

void ft_putendl_fd(char *s, int fd);

ft_putstr_fd와 같고, 마지막에 개행 문자를 출력해준다는 점만 다르다.


ft_putnbr_fd

void ft_putnbr_fd(int n, int fd);

파일 디스크립터가 가리키는 파일 또는 표준 입출력 스트림에 주어진 정수를 쓰거나 출력하는 함수.
정수를 문자열 또는 문자처럼 다루어야 해서 조금 까다로웠다. 재귀를 활용해 풀었다 😊


profile
응애 나 애기 개발자

0개의 댓글