뇌 마음 반반저장소

[42_libft] Part 2 (substr, strjoin) 본문

42/libft

[42_libft] Part 2 (substr, strjoin)

맹진저 2022. 12. 11. 20:55
728x90

2-1. part2 - Additional functions 추가적 함수들

In this second part, you must develop a set of functions that are either not in the libc, or that are part of it but in a different form.

이 두 번째 부분에서는 libc에 없거나 libc의 일부이지만 다른 형식의 함수 집합을 개발해야 한다.

 

💡Some of the following functions can be useful for writing the functions of Part 1.

다음 기능 중 일부는 파트 1의 기능을 작성하는 데 유용할 수 있습니다. : part 1의 도움을 받아서 작성할 수 있다!

 1-1. ft_substr

substr란?

Parameters : 매개 변수
s: The string from which to create the substring.
s: 부분 문자열을 만들 문자열입니다.
start: The start index of the substring in the string ’s’.
start: 's' 문자열의 시작 인덱스입니다.
len: The maximum length of the substring.
len: 하위 문자열의 최대 길이입니다.

Return value : 반환 값
The substring. NULL if the allocation fails.
하위 문자열입니다. 할당에 실패하면 NULL입니다.

External functs. : 외부 기능
malloc

Description : 설명
Allocates (with malloc(3)) and returns a substring from the string ’s’. The substring begins at index ’start’ and is of maximum size ’len’.
malloc(3)을 사용하여 문자열 's'에서 부분 문자열을 할당하고 반환합니다. 하위 문자열은 인덱스 'start'에서 시작하며 최대 크기는 'len'입니다.

 

함수 선언 원형

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

!테스트 메인!

int main()
{
    char    s[] = "abcdefghi";

    printf("before ft_substr : %s\n", s);
    printf("after  ft_substr : %s\n", ft_substr(s, 'c', 5));
    //위의 문자열에서 C를 찾은 곳 부터 5개를 내보내준다!

    return (0);
}

사용한 함수

1. ft_strrchr : 특정 캐릭터를 찾아준다.

2. ft_strlen : 새로운 문자열의 길이를 알아본다.

3. malloc : 새로운 문자열의 저장 공간을 마련한다.

4. ft_strlcpy : 새로운 저장공간에 길이만큼 문자열을 붙여준다.

 

!테스트 결과!

./main.out
before ft_substr : abcdefghi
after  ft_substr : cdefg

 1-2. ft_strjoin

strjoin이란?

Parameters : 매개 변수
s1: The prefix string.
s1 :앞에 붙을 문자열
s2: The suffix string.
s2 : 뒤에 붙을 문자열

Return value : 반환 값
The new string. NULL if the allocation fails.
새로운 문자열입니다. 할당에 실패하면 NULL입니다.

External functs. : 외부 기능
malloc

Description : 설명
Allocates (with malloc(3)) and returns a new string, which is the result of the concatenation of ’s1’ and ’s2’.
malloc(3)을 사용하여 할당하고 's1'과 's2'를 연결한 결과인 새 문자열을 반환합니다.

함수 선언 원형

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

!테스트 메인!

int main()
{
    char    s1[] = "abcdefghi";
    char    s2[] = "123456789";

    printf("before ft_strjoin s1 : %s\n", s1);
    printf("before ft_strjoin s2 : %s\n", s2);
    printf("after  ft_strjoin : %s\n", ft_strjoin(s1, s2));

    return (0);
}

사용한 함수

1. ft_strlen : 문자열의 길이 구하기

2. malloc : 새로운 문자열을 저장할 공간을 할당

3. ft_strlcpy : 문자열 차례로 저장하기

 

!테스트 결과!

$ ./main.out
before ft_strjoin s1 : abcdefghi
before ft_strjoin s2 : 123456789
after  ft_strjoin : abcdefghi123456789

 

도움을 주고 싶으신 내용이나

틀린 내용이 있다면 댓글로 남겨주시고,

참고하신다면 꼭 출처를 밝혀주세요!

 

도움이 되었다면 공감 한 번씩 부탁드립니다❤️

 

728x90
Comments