TIL(Today I Learn)/C++
is함수들 구현 (isalpha, isdigit, isascii, isalnum, isspace)
MinsoftK
2021. 1. 7. 19:06
틀린 내용이나 지식이 있다면 댓글로 알려주세요! 감사합니다 :)
💡 is 함수들에 대하여
환경
-
c, c++
-
C에서는 <ctype.h>
Prototype
int ft_isalpha(int c); //c가 알파벳이면 1, 아니면 0
int ft_isdigit(int c); //c가 '0'~'9'면 1, 아니면 0
int ft_isascii(int c); //c가 ascii면 1, 아니면 0
int ft_isalnum(int c); //알파벳이거나 '0'~'9'면 1, 아니면 0
int ft_isspace(const char *str) //공백문자인 문자를 skip해주는 함수
str
: c 형식 문자열
Return Value
c
가 각각의 조건에 맞다면true
를 반환, 아니라면false
를 반환한다.
is 함수들의 구현
int ft_isalpha(int c) //c가 알파벳이면 1, 아니면 0
{
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
return (1);
return (0);
}
int ft_isdigit(int c); //c가 '0'~'9'면 1, 아니면 0
{
if (c >= '0' && c <= '9')
return (1);
return (0);
}
int ft_isascii(int c); //c가 ascii면 1, 아니면 0
{
if (c >= 0 && c <= 255) //확장형아스키코드까지 고려해줘야한다.
return (1);
return (0);
}
int ft_isalnum(int c); //알파벳이거나 '0'~'9'면 1, 아니면 0
{
if (ft_isalpha(c) || ft_isdigit(c))
return (1);
return (0);
}
int ft_isspace(const char *str) //공백문자인 문자를 skip해주는 함수
{
int i;
i = 0;
while ((str[i] >= 9 && str[i] <= 13) || (str[i] == 32))
i++;
return (i); //공백문자를 지나간 i번째를 return해준다.
}
확장형 아스키코드란?
- 확장형 아스키코드를 살펴보면 255까지 있는 것을 확인할 수 있다.
- linux man 기준으로
unsigned char
형으로 지정 돼 있기 때문에~255
까지로 생각해준다. unsigned char
는 음수가 없는char
형을 의미한다. 따라서 맨 첫번째 bit가 1인 경우인11111111
까지 포함하는 경우라 생각하면 되겠다.
728x90
반응형