티스토리 뷰
[개요]
strjoin 함수란?
strjoin 함수 구현 코드
strjoin 함수 구현 설명
strjoin은 문자열 2개를 이어붙일때 사용하기 위한 함수다.
1. strjoin 함수란?
char *strjoin(char const *s1, char const *s2);
strjoin 함수는 문자열 2개를 이어붙어 동적할당 공간에 저장한다.
return값은 이어붙여진 문자열 주소를 반환한다.
인자로 들어온 문자열 중에 하나라도 주소가 NULL이라면 return 값으로 NULL을 반환한다.(NULL Guard)
동적할당 실패시에도 NULL을 반환한다.
2. strjoin 함수 구현 코드
char *strjoin(char const *s1, char const *s2)
{
char *joined;
int i;
int j;
if (!s1 || !s2)
return (NULL);
i = 0;
while (s1[i])
i++;
j = 0;
while (s2[j])
j++;
joined = (char *)malloc(i + j + 1);
if (!joined)
return (NULL);
i = -1;
while (s1[++i])
joined[i] = s1[i];
j = -1;
while (s2[++j])
joined[i + j] = s2[j];
joined[i + j] = '\0';
return (joined);
}
3. strjoin 함수 구현 설명
문자열 s1, s2의 주소값이 하나라도 NULL이라면 NULL을 반환한다.
인덱스 i, j를 이용하여 각각 s1, s2 문자열의 길이를 구한다.
s1, s2 문자열 길이의 합에 '\0' 문자를 넣기 위한 1을 더한 크기만큼 동적할당한다.
동적할당 실패시 NULL을 반환한다.
인덱스 i를 이용해서 s1 문자열을 joined에 복사한다.
인덱스 i와 j를 이용해서 s2 문자열을 joined에 복사된 문자열 뒤에 이어서 복사한다.
마지막 공간에 '\0'값을 넣고 문자열을 완성한다.
완성된 문자열 주소를 반환한다.
'C' 카테고리의 다른 글
헤더파일 #include 하는 순서 (0) | 2022.09.07 |
---|---|
서버가 클라이언트의 접속 요청을 받을 수 있도록 소켓 설정하기(with C/C++) (0) | 2022.08.27 |
[c] strdup 함수 구현하기 (0) | 2022.01.07 |
[42cursus] miniLibX(mlx) library (0) | 2021.12.27 |
strnstr()에서 NO CRASH(no segfault) 처리 (0) | 2021.05.14 |