srtlcpy
size_t ft_strlcpy(char *dst, const char *src, size_t size)
๋ฌธ์์ด์ ๋ณต์ฌํ๋ ํจ์์ด๋ค. src
๋ฅผ dst
์ ๋ณต์ฌํ๋ค.
์ต๋ size - 1
๋ฐ์ดํธ๊น์ง๋ง ๋ณต์ฌํ๊ณ , ๋ง์ง๋ง์ \0
์ ๋ฃ๋๋ค.
src
์ ์ด ๊ธธ์ด๋ฅผ ๋ฆฌํดํ๋ค. (์ค์ ๋ก ๋ณต์ฌ๋ ๊ธธ์ด ์๋)
strlcat
size_t ft_strlcat(char *dst, const char *src, size_t size)
๋ฌธ์์ด์ ๋ถ์ด๋ ํจ์์ด๋ค. dst
์ src
๋ฌธ์์ด์ ๋ถ์ธ๋ค. (concat)
๋ถ์ผ ๋ dst
์ ํฌ๊ธฐ๊ฐ size
๋ฅผ ๋์ง ์๋๋ก ํ๊ณ , dst
๋ \0
๋ก ๋๋๋๋ก ํ๋ค.
๋ฆฌํด ๊ฐ์ strlen(dst) + strlen(src)
์ผ๋ก, ์๋ ๋ง๋ค๊ณ ์ถ์๋ ์ด ๊ธธ์ด์ด๋ค.
- dst: ๋ถ์ฌ์ง ๋์ ๋ฌธ์์ด. ๊ฒฐ๊ณผ๊ฐ ์ฌ๊ธฐ์ ์ ์ฅ๋๋ค.
- src: ๋ถ์ผ ๋ฌธ์์ด (์ฝ๊ธฐ ์ ์ฉ)
- (dst)size:
dst
์ ์ฒด ํฌ๊ธฐ (๊ธฐ์กด ๋ฌธ์์ด + ๋ถ์ผ ๋ฌธ์์ด +\0
)
strchr
char *ft_strchr(const char *s, int c)
๋ฌธ์์ด์์ ์ฃผ์ด์ง ๋ฌธ์๋ฅผ ๋ค์์๋ถํฐ ๊ฒ์ํ๋ ํจ์์ด๋ค.
๐จ ๋ฌธ์์ด์ ์ข
๋ฃ ๋ฌธ์ \0
๋ ๊ฒ์ ๋์์ ํฌํจ๋๊ธฐ ๋๋ฌธ์, c == '\0'
์ด๋ฉด ๋ฐ๋์ ๋ฌธ์์ด์ ๋์ ๋ฐํํด์ผ ํ๋ค.
strnstr
char *ft_strnstr(const char *big, const char *little, size_t len)
๋ฌธ์์ด big
์์ ์ต๋ len
๋ฐ์ดํธ๊น์ง๋ง ํ์ธํ๋ฉด์ ๋ฌธ์์ด little
์ ์ฐพ๋๋ค.
์ฐพ์ผ๋ฉด ์ฒซ ์์น ํฌ์ธํฐ๋ฅผ ๋ฐํํ๊ณ , ๋ชป ์ฐพ์ผ๋ฉด NULL
์ ๋ฐํํ๋ค.
little
์ด ๋น ๋ฌธ์์ด์ด๋ฉด big
์ ๋ฆฌํดํ๋ค.
substr
char *ft_substr(char const *s, unsigned int start, size_t len)
๋ฌธ์์ด์ ๋ถ๋ถ ๋ฌธ์์ด์ ๋ฐํํ๋ ํจ์์ด๋ค.
๐จ ๋ฌธ์์ด์ ๋๊น์ง ๋ค ๋ชป ๊ฐ์ ธ์ค๋ ๊ฒฝ์ฐ
s = "HelloWorld"; // s_len = 10
start = 7; // 'o'
len = 10; // ์ต๋ 10๊ธ์ ์์ฒญ
//
// →
์ค์ ๋จ์ ๊ธ์๋ s[7]
~ s[9]
→ "o"
, "r"
, "l"
, "d"
= ์ด 3๊ธ์์ด๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์์ฒญํ 10๊ธ์ ์ค 3๊ธ์๋ง ๊ฐ๋ฅํ๋ค.
์ด ๊ฒฝ์ฐ, len = s_len - start
(3)์ผ๋ก ์ค์ฌ์ "orld"
๋ง ๋ฐํํ๋ค.
๐จ start
๊ฐ ๋ฌธ์์ด ๊ธธ์ด๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๊ฒฝ์ฐ
s = "abc"; // s_len = 3
start = 10; // ๋ฒ์ ๋ฐ
len = 5;
์ด ๊ฒฝ์ฐ, ๋น ๋ฌธ์์ด(""
)์ ๋ฐํํ๋ค.
strtrim
char *ft_strtrim(char const *s1, char const *set)
๋ฌธ์์ด ์ค ํน์ ๋ฌธ์๋ฅผ ์๊ณผ ๋ค์์ ์๋ฅด๋ ํจ์์ด๋ค. ๋ณดํต์ ๊ณต๋ฐฑ์ ์์ ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
- ์์์๋ถํฐ
set
์ ์๋ ๋ฌธ์๊ฐ ๋ฐ๋ณต๋๋ฉดstart++
- ๋ค์์๋ถํฐ
set
์ ์๋ ๋ฌธ์๊ฐ ๋ฐ๋ณต๋๋ฉดend--
start
~end
์ฌ์ด๋ง ๋ณต์ฌํด์ ์ ๋ฌธ์์ด๋ก ํ ๋น ํ ๋ฐํํ๋ค.
๐จ ์๋ผ๋ด๊ณ ๋จ์ ๊ฒ ์์ ๋ (start > end
์ผ ๋)
๊ทธ๋ฅ NULL
์ ๋ฆฌํดํ๋ฉด ์ ๋๊ณ , return (ft_strdup(""));
์ ํด์ผํ๋ค.
ํ์ค strtrim()์ ์ ์์ ๋ฐ๋ฅด๋ฉด, ์ด ๊ฒฝ์ฐ์๋ ๋น ๋ฌธ์์ด์ ํ ๋นํด์ ๋ฐํํด์ผ ํ๋ค.
strmapi & striteri
char *ft_strmapi(char const *s, char (*f)(unsigned int, char))
void ft_striteri(char *s, void (*f)(unsigned int, char*))
๋ ํจ์๋ ๋ฌธ์์ด์ ์ํํ๋ฉฐ ๊ฐ ๋ฌธ์์ ํจ์๋ฅผ ์ ์ฉํ๋ ํจ์์ด๋ค.
ft_strmapi
๋ ์ ๋ฌธ์์ด์ ์์ฑํ๊ณ , ft_striteri
๋ ๊ธฐ์กด ๋ฌธ์์ด์ ์ง์ ์์ ํ๋ค.
'๐โโ๏ธ Activities > 42 Cursus' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ft_printf][C] ๊ฐ๋ณ ์ธ์ ํจ์ (0) | 2025.06.02 |
---|---|
[Libft][C] ์ฐ๊ฒฐ ๋ฆฌ์คํธ(linked list) ํจ์ ๊ตฌํ (lstadd_front, lstdelone, lstmap) (0) | 2025.06.02 |
[Libft][C] memory ํจ์ ๊ตฌํ (memset / memmove / memchr / bzero / calloc) (0) | 2025.06.02 |
[C] void & void *ํ์ / ํฌ์ธํฐ ์ฐ์ฐ (0) | 2025.06.02 |
[Makefile] PHONY (1) | 2025.05.30 |