티스토리 뷰

틀린 내용이나 지식이 있다면 댓글로 알려주세요! 감사합니다 :)

💡 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
반응형