42Seoul/libft

libft - isascii, isprint, memset

재윤 2023. 3. 24. 10:21
반응형

isascii

아스키 문자라면 0이 아닌 값을 반환하고 아스키 문자가 아니라면 0을 반환하도록 함.

함수원형

int	ft_isalnum(int c)

리턴값

  1. 아스키 문자라면 0이 아닌 값을 반환하고 아스키 문자가 아니라면 0을 반환하도록 함.
#include "libft.h"

int	ft_isascii(int c)
{
	if (c >= 0 && c <= 127)
		return (1);
	return (0);
}

 

참고 사이트

isascii() 구현하기

 

isascii() 구현하기

C언어 라이브러리 만들기 시리즈는 C언어 표준 라이브러리의 함수와 자주 사용하는 함수를 직접 구현하는 시리즈입니다.

velog.io

 

isprint

함수원형

int	ft_isprint(int c)

리턴값

  1. 아스키코드에서 출력 가능한 문자이면 1을 아니면 0을 리턴
    • 공백은 출력 불가능함 문자임
    • 아스키 코드에서 출력 가능한 문자 33~126

그런데 공백도 포함해야 해서 32~126으로 해야함

#include "libft.h"

int	ft_isprint(int c)
{
	if (!(c >= 32 && c <= 126))
		return (0);
	else
		return (1);
	return (0);
}

참고 사이트

# 아스키 코드 ( ASCII Code ) 설명 및 출력 코드

 

# 아스키 코드 ( ASCII Code ) 설명 및 출력 코드

1. 정의 ASCII - ( American Standard Code for Information Interchange, 미국 정보 교환 표준 부호 ) 아스키코드는 미국 ANSI(미국 국가표준 협회)에서 표준화한 정보 교환용 7비트 부호체계입니다. 2. 용도 영문 알

domybestinlife.tistory.com

memset

함수원형

void	*ft_memset(void *b, int c, size_t len);
  1. 첫 시작 주소를 받기 위해 dest 즉, 메모리 시작 주소
    • void 자료형: 자료형을 가진 포인터변수는 자료형에 관계없이 주소값을 대입할 수 있다.
  2. value 메모리에 채우고자 하는 값 int형으로 받고 메모리에 채워지는 건 unsinged char(1byte)로 변환
  3. 채우고자 하는 메모리의 크기 ex) sizeof(int)가 들어옴
  4. size_t: 부호없는 정수형 즉, unsinged integer
#include "libft.h"

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

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

블로그에서 무슨 경고 뜬다고 하는데 됨

#include <stdio.h>
#include <string.h>

int main()
{

	printf("%lu\\n", sizeof(size_t));

	unsigned int size = strlen("AAA BBB");

	printf("%u", size);
}

 

만약 

널 포인터를 가리키고 있는 포인터가 지정된다면

char *ptr = 0;

 

memset(ptr, 0, sizeof(*ptr));

 

세그멘테이션 fault가 뜸.

 

또한 

memset(ptr, 2, sizeof(*ptr));

 

이렇게 되어도 세그가 뜬다. 

참고 사이트

void

 

C 언어 기초 (48) void 형 포인터

우리가 포인터에 대해서 배울때 어떠한 이야기를 했었죠? 포인터의 자료형은 해당 포인터가 가리키는 주소...

blog.naver.com

size_t

  1. [C언어] size_t 란?
 

[C언어] size_t 란?

size_t 란? size_t는 부호 없는 정수형(unsinged integer)으로 sizeof, alignof, offsetof의 반환 값입니다...

blog.naver.com

 

memset, bzero 함수 구현

 

memset, bzero 함수 구현

틀린 내용이나 지식이 있다면 댓글로 알려주세요! 감사합니다! (2021.01.03 내용수정) 2021.01.07 내용 업데이트 💡 💡 memset에 대하여 환경 c, c++ 목적 memset 함수는 어떤 메모리의 시작점부터 연속된

minsoftk.tistory.com

[C언어/C++] 메모리 초기화 memset 함수 사용법 & 예제

 

[C언어/C++] 메모리 초기화 memset 함수 사용법 & 예제

메모리를 할당받은 변수의 공간은 쓰레기 값들이 남아있습니다. 이러한 쓰레기값들을 없애기 위해서 사용할 수 있는 방법중 하나가 memset함수를 사용하는 것입니다. memset 함수를 사용하면 메모

coding-factory.tistory.com

[C / C++] memset 함수 사용

 

[C / C++] memset 함수 사용

memset 함수는 memory + set 으로 특정 메모리 공간에 지정한 값을 채워준다. 함수 원형 void* memset(void* ptr, int value, size_t num); → memset (시작 포인터, 설정할 값, 크기) ① void* ptr 메모리 시작 주소 ② int

zoosso.tistory.com

 

반응형

'42Seoul > libft' 카테고리의 다른 글

libft - strlcpy, strlcat, strncmo  (0) 2023.03.24
libft - bzero, memcpy, memove  (0) 2023.03.24
libft - isalpha, isdigit, isalnum  (0) 2023.03.24
Makefile  (0) 2023.03.23
libft.h 헤더 파일 만들기  (0) 2023.03.23