42SEOUL

[C] LIBFT 1

daykim 2021. 11. 18. 16:07

목차

isalpha

헤더 : <ctype.h>

int isalpha(int c)

매개변수로 들어온 인자가

  • 알파벳 대문자 "A-Z"는 return 1
  • 알파벳 소문자 "a-z"는 return 2
  • 알파벳이 아니면 return 0

을 반환하는 함수

매개변수가 int형이지만 char 형으로 넣어도 아스키코드로 자동으로 형변환되어 들어가게 된다.

 

isdigit

헤더 : <ctype.h>

int isdigit(int c)

매개변수로 들어온 char 형이

  • 10진수 숫자로 변경이 가능하면 0이 아닌 숫자(true),
  • 불가능하면 0(false)를 반환하는 함수

즉 "0-9"에 매칭되는 문자가 들어오면 true를 반환하는 함수

 

isalnum

헤더 : <ctype.h>

int isalnum(int c)

매개변수 값이 알파벳 또는 숫자이면 0이 아닌 값을 반환하고

아니라면 0을 반환하는 함수

 

isascii

헤더 : <ctype.h>

int isascii(int c)

아스키 문자일 경우 0이 아닌 값을 반환하고,

아스키 문자가 아닐 경우 0을 반환하는 함수

아스키값이 0~127의 값이면 아스키 문자

 

isprint

헤더 : <ctype.c>

int isprint(int c)

c가 공백을 포함하여 출력할 수 있는 문자이면 0이 아닌 수를

아닌 값은 0을 반환하는 함수

아스키값으로 32 ~ 126에 해당하는 문자들이 출력 가능한 문자

 

memset

헤더 : <memory.h> || <string.h>

void* memset(void* ptr, int value, size_t num)

메모리의 값을 원하는 크기만큼 특정 값으로 세팅할 수 있는 함수

memory + setting

  • prt : 세팅하고자 하는 메모리의 시작 주소
  • value : 메모리에 세팅하고자 하는 값
  • num : 바이트 단위의 길이. 보통 [길이 * sizeof( data type ) ] 형태로 작성
  • return : 성공하면 ptr, 실패시 Null 반환

 

bzero

헤더 : <string.h>

void bzero(void *s, size_t n)

zero 값을 채우는 함수

0x00 값을 s 영역에 n byte 크기만큼 초기화하는 함수

 

memcpy

헤더 : <string.h>

void* memcpy(void* dest, const void* source, size_t num)

memory + copy

메모리의 값을 복사하는 함수

  • dest : 복사 받을 메모리를 가리키는 포인터
  • source : 복사할 메모리를 가리키는 포인터
  • num : 복사할 데이터의 길이 (byte 단위)

만약 source 문자열의 끝까지 즉 문자열 끝의 null값까지 포함해 복사하려면 src길이에 +1을 해주어야 한다.

 

memmove

헤더 : <string.h>

void* memmove(void* dest, const void* src, size_t num)

memory + move

src가 가리키는 메모리에서 num byte 만큼 dest가 가리키는 메모리에 옮기는 함수

memcpy와 같은 결과지만 memmove는 복사할 것을 버퍼에 먼저 복사한 후 해당 위치에 가서 버퍼에 복사된 겉을 붙여넣는 방식으로 수행된다. 따라서 안정성 면에서 memcpy보다 좋다고 할 수 있다.

주소값이 겹치는 경우 의도한대로 복사되지 않을 수 있기 때문이다.

  • dest : 복사한 것을 붙여넣을 메모리를 가리키는 포인터
  • src : 복사할 메모리를 가리키는 포인터
  • num : 복사할 바이트 길이

'42SEOUL' 카테고리의 다른 글

[c] LIBFT 2  (0) 2022.01.12
[C] size_t  (0) 2021.11.18
[C] malloc  (0) 2021.10.26
[C] 전처리기, main()  (0) 2021.10.26
[C] str 함수  (0) 2021.10.12