티스토리 뷰

아스키 코드

문제

알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오.

입력

알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다.

출력

입력으로 주어진 글자의 아스키 코드 값을 출력한다.

예제 입력 1

A

예제 출력 1

65

예제 입력 2

C

예제 출력 2

67

예제 입력 3

0

예제 출력 3

48

예제 입력 4

9

예제 출력 4

57

예제 입력 5

a

예제 출력 5

97

예제 입력 6

z

예제 출력 6

122

해설

아스키코드에 대한 이해와 scanf() 함수에 대해 알고 있다면 아주 간단한 문제이다. 아스키코드(ascii)는 아래의 테이블을 의미한다.

ascii table

  • 아스키코드에 대한 설명은 나무위키를 참고하길. 읽어 보고 이해되지 않는 부분이 있으면 댓글로 질문해 주세요.

주지하다시피 컴퓨터가 이해할 수 있는 수는 0과 1뿐이다. 우리가 컴퓨팅 과정에서 영어, 한글, 한자 등을 모두 쓸 수 있다고 해서 컴퓨터가 이런 문자를 모두 생각해서는 곤란하다. 컴퓨터는 이 모든 문자(열)을 이진 코드(0과 1의 조합으로 만들어진 문자열)로 변환하여 이해한다. 즉 이 변환을 위해 사용되는 테이블 중 하나가 바로 아스키코드인 것이다. 컴퓨팅이 활성화되던 초창기에 주로 사용된 테이블로 알파벳 대소문자, 아라비아숫자, 제어 문자로 구성되어 있다. 문제는 키보드로 입력받은 문자의 10진 아스키코드값을 출력하라고 요구하고 있다. 어떻게 하면 문자를 이 십진 코드로 바꿀 수 있을까?

scanf(), printf() 함수를 이용하면 간단히 해결된다. 다른 언어에서 콘솔 입출력을 담당하는 기본 함수들도 거의 유사하게 동작할 것이다. 우선 우리는 입력을 문자로 받아야 하기 때문에 아래와 같이 %c를 이용하여 한 문자를 입력받는다.

    scanf("%c", &ascii);

입력을 문자로 정확히 받았으니 이제 관건은 이를 아스키코드로 출력하는 것이다. 위의 표와 같이 처리할 수 있는 변환 함수를 만들 수도 있겠지만 이는 printf() 함수의 출력 서식을 이용하여 해결할 수 있다. 입력받은 문자를 숫자로 출력하라(%d\n)고 지시하면 printf()는 해당 문자에 대응하는 아스키코드를 화면에 출력해 준다.

    printf("%d\n", ascii);

글을 쓰다 보니 '이거 함수로 분류된 문제였나?' 하는 생각이 든다. 그렇다면 아스키코드 테이블을 이용해 변환 함수를 만들어야 하는 문제인 건가? 코드와 글을 다시 써야 한다는 생각에 짜증이 밀려드는 순간 떠올랐다. 이 문제는 문자열로 분류된 문제였다. 휴, 다행이다.

이 두 가지를 이용해서 코드를 완성하면 아래와 같다.

소스 코드: C

#include <stdio.h>
int main(int argc, char *argv[])
{
    char ascii;
    scanf("%c", &ascii);
    printf("%d\n", ascii);
    return 0;
}

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함
11-26 00:00