[42seoul] libft - 2

minskim2·2021년 9월 19일
0

42seoul

목록 보기
3/4
post-thumbnail

지난번 libft - 1 포스트에 이어서 작성하겠습니다.


13) ft_strrchr

char	*ft_strrchr(const char *str, int c)

문자열 str에서 마지막으로 나오는 문자 c(char로 변환)를 찾습니다. 인자로 받을 때는 int형이지만 함수 안에서 char로 처리됩니다. NULL문자도 찾는 문자로 받을 수 있습니다.

return
문자 c가 있다면 문자열 끝 부분부터 가장 먼저 나타나는 주소를 반환합니다. 없다면 NULL을 반환합니다.



14) ft_strnchr

char	*ft_strnstr(const char *str, const char *substr, size_t len)

문자열 str에서 문자열 substr을 찾는 함수입니다. 문자열 str에서 len개의 문자들만 검사합니다.

return
str에 substr이 있다면 시작 주소를 반환합니다. 없다면 NULL을 반환합니다.
만약 substr이 비어있다면 str을 반환합니다.



15) ft_strncmp

int		ft_strncmp(const char *s1, const char *s2, size_t n)

문자열 s1과 s2를 n개만큼 비교하는 함수입니다.

return
n개의 문자 모두 일치한다면 0을 반환합니다. 만약 일치하지 않는 문자가 나온다면 s1값 - s2값을 반환합니다.



16) ft_strnstr

char	*ft_strnstr(const char *str, const char *substr, size_t len)

문자열 str에 substr이 존재하는지 확인하는 함수입니다. 크기 n만큼의 문자만 확인합니다. 만약 substr을 찾는다면, substr을 찾은 첫번째 주소값을 반환합니다.

return
n개의 문자를 검사하고 찾지 못한다면 0을 반환합니다. 만약 substr과 일치하는 문자가 나온다면 첫번째로 발견한 문자열의 주소값을 반환합니다.



17) ft_strdup

char	*ft_strdup(const char *s1)

문자열 s1과 똑같은 문자열 s2를 만듭니다. 새로 메모리를 할당받고, s1의 값을 그대로 복사하여 s2를 만들고 반환해주면 됩니다.

return
문자열 s1과 같은 값을 갖는 새로운 문자열 s2를 만들어서 반환합니다.



18) ft_atoi

int	ft_atoi(const char *str)

문자열 str을 숫자로 바꾸는 함수입니다. 예를들어 "123"의 경우 숫자 123으로 바꿔줍니다.
앞에 공백문자가 있다면 공백문자를 모두 무시합니다. 또한 부호가 나온다면 부호를 반영해야합니다. 숫자가 아닌문자가 나올때 까지 변환이 계속됩니다.
(int형 최댓값과 최솟값 변환에 주의하세요!)
ex) " -1234abc" --> -1234

return
부호를 반영한 int형 숫자



19) ft_isalpha

int	ft_isalpha(int c)

c가 알파벳인지 판단하는 함수입니다. 이때 char가 아닌 int형인 이유는 256개의 문자에 추가로 EOF까지 받을 수 있기 위함입니다.

return
알파벳이 아니라면 0을 반환합니다. 알파벳이라면 0이아닌 정수, 1을 리턴합니다.



20) ft_isdigit

int	ft_isdigit(int c)

c가 숫자인지 판단하는 함수입니다. 이때 char가 아닌 int형인 이유는 256개의 문자에 추가로 EOF까지 받을 수 있기 위함입니다.

return
숫자가 아니라면 0을 반환합니다. 숫자라면 0이아닌 정수, 1을 리턴합니다.



21) ft_isalnum

int	ft_isalnum(int c)

c가 숫자 또는 알파벳인지 판단하는 함수입니다. 이때 char가 아닌 int형인 이유는 256개의 문자에 추가로 EOF까지 받을 수 있기 위함입니다.

return
숫자 또는 알파벳이 아니라면 0을 반환합니다. 숫자나 알파벳이라면 0이아닌 정수, 1을 리턴합니다.



22) ft_isascii

int	ft_isascii(int c)

c가 0 ~ 127 사이의 아스키 문자인지 확인하는 함수입니다.

return
아스키 문자가 아니라면 0을 반환합니다. 아스키 문자라면 0이아닌 정수, 1을 리턴합니다.



23) ft_isprint

int	ft_isprint(int c)

c가 출력 가능한 문자인지 확인하는 함수입니다. 출력 가능한 문자의 아스키 값은 32 ~ 126 사이의 값입니다.

return
출력 가능하지 않다면 0을 반환합니다. 출력 가능하다면 0이아닌 정수, 1을 리턴합니다.



24) ft_toupper

int	ft_toupper(int c)

c가 소문자인 경우 대문자로 변환하는 함수입니다. 만약 대응하는 대문자가 없거나, 이미 대문자인 경우 그대로 반환합니다.

return
소문자 c에 대응하는 대문자를 반환합니다. 만약, 소문자가 아니면 그대로 c를 반환합니다



25) ft_tolower

int	ft_tolower(int c)

c가 대문자인 경우 소문자로 변환하는 함수입니다. 만약 대응하는 소문자가 없거나, 이미 소문자인 경우 그대로 반환합니다.

return
대문자 c에 대응하는 소문자를 반환합니다. 만약, 대문자가 아니면 그대로 c를 반환합니다



휴, 지금까지만해도 상당히 많은 함수를 구현했습니다...!
보너스까지 포함하면 반정도 남았어요. 힘냅시다..!

libft는 나중에 과제를 진행하면서 사용할 수도 있습니다. 그래서 처음 하실때 꼼꼼히 하시는걸 추천드려요. 또, 상당히 공부에 도움 되는 과제기도 하구요.

다음 포스팅때 libft과제를 마무리 할수 있을지 모르겠네요... 다음에 또 봐요!

그럼 안녕

profile
Boys, be ambitious!

0개의 댓글