반응형
isascii
아스키 문자라면 0이 아닌 값을 반환하고 아스키 문자가 아니라면 0을 반환하도록 함.
함수원형
int ft_isalnum(int c)
리턴값
- 아스키 문자라면 0이 아닌 값을 반환하고 아스키 문자가 아니라면 0을 반환하도록 함.
#include "libft.h"
int ft_isascii(int c)
{
if (c >= 0 && c <= 127)
return (1);
return (0);
}
참고 사이트
isprint
함수원형
int ft_isprint(int c)
리턴값
- 아스키코드에서 출력 가능한 문자이면 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 ) 설명 및 출력 코드
memset
함수원형
void *ft_memset(void *b, int c, size_t len);
- 첫 시작 주소를 받기 위해 dest 즉, 메모리 시작 주소
- void 자료형: 자료형을 가진 포인터변수는 자료형에 관계없이 주소값을 대입할 수 있다.
- value 메모리에 채우고자 하는 값 int형으로 받고 메모리에 채워지는 건 unsinged char(1byte)로 변환
- 채우고자 하는 메모리의 크기 ex) sizeof(int)가 들어옴
- 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
size_t
[C언어/C++] 메모리 초기화 memset 함수 사용법 & 예제
반응형
'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 |