본문 바로가기
IT

[C언어/유닉스] 알파벳을 소문자 ‘a’부터 순서대로 한 줄로 표시하는 함수 작성

by 배애앰이 좋아 2020. 12. 10.
반응형

 

먼저 코드부터 보여드리면,

 

 #include <unistd.h>
  
 void    print_alphabet(void)
 {
     char a;
  
     a = 'a';
     while (a <= 'z')
     {
  		write(1, &a, 1);
  		a++;
     }
 }

 

write 함수를 사용하기 위해서 #include <unistd.h> 헤더 파일을 추가해준다.

소문자는 문자형으로 char 타입으로 변수명을 지정해서 선언해준 후 'a'를 대입해준다.

이때, 'a'가 아닌 97를 넣어도 되는데 그 이유는 write 함수가 standard output(표준출력)에 문자로 출력해주는 함수이기 때문에 char 타입으로 'a'로 보내면 char 타입이 그대로 출력이되고, int 타입으로 97을 보내면 아스키 코드표에 의해서 a 로 출력하기 때문에 'a'든 97이든 상관없다.

 

아스키 코드

 

그 뒤에 ++를 해주면 값이 1씩 증가하면서 아스키 코드표 보다싶이 a -> b 순으로 증가하면서 출력하게 된다. 그러다가 while 의 조건이 false가 되는 'z' + 1인 { 왔을 때 탈출(?)하면서 a부터 z까지만 출력되는 것을 확인할 수 있다.

 

아래와 같이 테스트 해봤을 경우 :

 

 

아래와 같은 결과가 나오는 것을 확인할 수 있습니다.

 

 

반응형

댓글