728x90
[이전 글]
[다음 글]
Part 2 : Additional functions
두 번째 파트에서는, libc에 포함되어 있지 않거나 다른 형식으로 포함된 함수들을 재구현하여야 합니다. 다음 함수들 중 일부는 Part 1 함수를 작성할 때 도움이 될 거예요.
- ft_substr, ft_strjoin, ft_strtrim, ft_split, ft_itoa, ft_strmapi, ft_striteri
- ft_putchar_fd, ft_putstr_fd, ft_putendl_fd, ft_putnbr_fd
반응형
ft_substr
char *ft_substr(char const *s, unsigned int start, size_t len);
- s : 자를 문자열, start : 시작할 인덱스 (색인), len : start부터 자를 문자열 개수
- s 문자열을 start 인덱스부터 len 길이만큼 자른 문자열을 반환.
- start가 s의 길이보다 크거나 같을 때, Null을 가리키는 문자열을 반환한다.
- len이 s의 길이보다 클 때는 s의 문자열의 끝까지만 자르도록 처리해야 한다.(ft_strlcpy 사용)
ft_strjoin
char *ft_strjoin(char const *s1, char const *s2);
- s1과 s2를 이은 문자열을 반환한다.
- 둘 다 NULL일 경우, NULL을 반환하고, 그렇지 않을 경우 값이 있는 경우만 처리되도록 하였다.
ft_strtrim
char *ft_strtrim(char const *s1, char const *set);
- s1 문자열의 앞, 뒤에 있는 set 문자열에 포함되는 문자들을 제거한 문자열을 반환하는 함수이다.
- 처음과 끝의 인덱스를 구한 후 동적 할당하고, ft_strlcpy을 이용하여 값을 구했다.
ft_split
char *ft_split(char const *s, char c);
- 특정 문자를 기준으로 문자열을 자르는 함수이다.
- s가 분할할 문자열이고 c가 구분 문자이다.
- 분할한 결과인 새 배열을 반환하며 할당이 실패하면 NULL을 반환한다.
- 2차원 배열로 동적 할당한 배열에 인덱싱을 해서 또 동적 할당을 하게 된다.
- ft_strlcpy를 호출해서 복사한다.
ft_itoa
char *ft_itoa(int n);
- 숫자를 문자열로 변환하는 함수이다.
- 정수가 몇 자리 인지 확인하고 일의 자리부터 값을 채워간다.
ft_strmapi
char *ft_strmapi(char const *s, char (*f)(unsigned int, char));
- 함수 포인터를 사용하여 인자로 들어온 문자열에 함수를 적용하는 함수이다.
- 적용된 문자로 생성된 새로운 문자열을 반환하며 할당이 실패하면 NULL을 반환한다.
ft_striteri
void ft_striteri(char *s, void (*f)(unsigned int, char*));
- 문자열 s를 순회하며 각 요소에 함수 f를 적용시키는 함수이다.
- 함수 f에는 현재 문자열 요소의 인덱스 값과 주소 값을 전달해준다.
ft_putchar_fd
void ft_putchar_fd(char c, int fd);
- 문자 c를 출력하는 함수이다.
ft_putstr_fd
void ft_putstr_fd(char *s, int fd);
- 문자열 s를 출력하는 함수이다.
ft_putendl_fd
void ft_putendl_fd(char *s, int fd);
- 문자열 s를 출력하고, 개행을 출력하는 함수이다.
ft_putnbr_fd
void ft_putnbr_fd(int n, int fd);
- 정수 n을 출력하는 함수이다.
728x90
반응형
'42 SEOUL > 0_Libft' 카테고리의 다른 글
[Libft] Part1 : calloc, strdup (0) | 2022.04.11 |
---|---|
[Libft] Bonus part (0) | 2022.03.28 |
[Libft] Part1 : strlen, strnstr, strlcpy, strlcat, strchr, strrchr, strncmp (0) | 2022.03.26 |
[Libft] Part1 : toupper, tolower, atoi (0) | 2022.03.26 |
[Libft] Part1 : bzero, memset, memcpy, memmove, memchr, memcmp (0) | 2022.03.25 |
댓글