ft_isascii 구현

yeonjkim·2021년 5월 22일
0

42seoul-libft

목록 보기
6/43

1. ft_isascii 용도

* 인자로 들어온 c가 아스키 코드인지 판별하는 함수

* c가 아스키 코드표 상의 값이면 아스키 코드임

2. ft_isascii 프로토타입

int	ft_isdigit(int c)

3. 구현 시 유의사항

* ft_isascii 함수의 인자로 int형 변수 c를 받음.

* 따라서 이 c를 아스키 코드표 상의 번호로 판별하면 됨.

4. ft_isalnum의 인자로 int형 변수를 받는 이유

  • 이는 이 함수가 c언어의 초기부터 존재했던 아주 오래된 표준 함수이기 때문.

  • 이전 버전의 c는 함수 프로토타입을 가지고 있지 않았다.
    따라서 함수는 하단과 같이 선언되지 않은 상태나 'unknown' 인자로 선언되었다.

//non-prototype declaration
void *memchr();

이러한 함수를 호출 시, 모든 인자는 automatic argument promotion을 받게 되는데, 이는 이러한 함수가 char형이나 short형을 받지 못함을 의미한다.

그러한 함수는 항상 caller에 의해 함수 내부적으로 int형으로 받아들이도록 추진되기 때문에 int형 인자가 사용된 것이다.

5. 코드 구현

#include "libft.h"

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

6. 코드 구현 방법

  • ft_isascii : int형 변수 c를 인자로 받아 c가 0부터 127까지의 값인지 판별.

  • c가 아스키 코드이면 1 반환, 그 외의 값이면 0 반환.

7. 구현 시 어려웠던 점

  • ft_isascii 함수에서 왜 인자로 int값을 받는지 궁금했었다.

0개의 댓글