๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿฐ42์„œ์šธ/libft

[libft] ft_memset, ft_bzero, ft_memchr ๊ตฌํ˜„

๐Ÿ“Œmemset

โœ”๏ธ ํ•จ์ˆ˜ ํ”„๋กœํ† ํƒ€์ž…

void	*memset(void *b, int c, size_t len);

โœ”๏ธ ํ•จ์ˆ˜์˜ ์—ญํ•  : c ๊ฐ’(unsigned char ๋กœ ๋ณ€ํ™˜๋จ)์„ len ๋ฐ”์ดํŠธ ๊ธธ์ด๋งŒํผ ๋ฌธ์ž์—ด b์— ์“ด๋‹ค. 

โœ”๏ธํ•จ์ˆ˜ ๋ฐ˜ํ™˜๊ฐ’ 

โœ๏ธmemset ํ•จ์ˆ˜์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ž

 

โœ”๏ธ๊ตฌํ˜„

#include "libft.h"

void	*ft_memset(void *b, int c, size_t len)
{
	size_t	i;

	i = 0;
	while (i < len)
	{
		*(unsigned char *)(b + i) = (unsigned char)c;
		i++;
	}
	return (b);
}

 

๐Ÿ“Œbzero

โœ”๏ธ ํ•จ์ˆ˜ ํ”„๋กœํ† ํƒ€์ž…

void	bzero(void *s, size_t n);

โœ”๏ธ ํ•จ์ˆ˜์˜ ์—ญํ•  :  0 n๋ฐ”์ดํŠธ๋ฅผ s์— ์“ด๋‹ค.

โœ”๏ธํ•จ์ˆ˜ ๋ฐ˜ํ™˜๊ฐ’  ์—†์Œ

 

โœ”๏ธ๊ตฌํ˜„

#include "libft.h"

void	ft_bzero(void *s, size_t n)
{
	size_t	i;

	i = 0;
	if (n == 0)
		return ;
	while (i < n)
	{
		*(unsigned char *)(s + i) = 0;
		i++;
	}
}

 

๐Ÿ“Œmemchr

โœ”๏ธ ํ•จ์ˆ˜ ํ”„๋กœํ† ํƒ€์ž…

void	*memchr(const void *s, int c, size_t n);

โœ”๏ธ ํ•จ์ˆ˜์˜ ์—ญํ•  : string s์—์„œ ์ฒ˜์Œ ๋‚˜ํƒ€๋‚˜๋Š” c(unsigned char ๋กœ ๋ณ€ํ™˜๋จ)๋ฅผ ์ฐพ๋Š”๋‹ค.

โœ”๏ธํ•จ์ˆ˜ ๋ฐ˜ํ™˜๊ฐ’ 

โœ๏ธc๋ฅผ s์—์„œ ์ฐพ์€ ๊ฒฝ์šฐ, ๊ทธ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ

โœ๏ธ  s์— c๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, NULL

 

โœ”๏ธ๊ตฌํ˜„

#include "libft.h"

void	*ft_memchr(const void *s, int c, size_t n)
{
	size_t			i;
	unsigned char	*tmp;

	i = 0;
	tmp = (unsigned char *)s;
	while (i < n)
	{
		if (tmp[i] == (unsigned char)c)
			return (&tmp[i]);
		i++;
	}
	return (NULL);
}