반응형
strlcat은 strcat과 마찬가지로 문자열 뒤에 문자열을 붙여 넣는 함수입니다.
다만, 복사되고 나서의 문자열의 길이 제한과 반환해 주는 값이 문자열이 길이가 된다는 특이점이 존재합니다.
strlcat 함수를 구현해 보겠습니다.
strlcat 함수
int ft_len(char *str)
{
int i;
i = 0;
while (str[i] != '\0')
{
i++;
}
return (i);
}
unsigned int OdOp_strlcat(char *dest, char *src, unsigned int size)
{
unsigned int i;
unsigned int j;
i = ft_len(dest);
if (i > size)
return (size + ft_len(src));
j = 0;
while (src[j] != '\0' && i + j + 1 < size)
{
dest[i + j] = src[j];
j++;
}
dest[i + j] = '\0';
return (i + j);
}
우선 dest의 길이를 젭니다.
dest의 길이가 size보다 크다면 앞에서 설명드린 길이 제한에 걸리기 때문에 size + src의 길이를 반환해 줍니다.
dest뒤에 src를 dest의 길이가 size보다 작거나 src 문자열이 끝나기 전까지 dest에 붙여줍니다.
다 완료했다면 dest의 길이를 반환해 줍니다.
반응형
'Language > C언어' 카테고리의 다른 글
C037_소수점 아래로 n자리까지 출력하기 (2) | 2023.12.03 |
---|---|
C036_printf 응용하기기 (2) | 2023.12.02 |
C034_strstr 함수 구현해서 사용하기 (0) | 2023.10.29 |
C033_strncat 함수 구현해서 사용하기 (2) | 2023.10.28 |
C032_strcat 함수 구현해서 사용하기 (0) | 2023.10.27 |