' [C/C++] 문자의 ASCII 번호 출력하는 프로그램 만들기

Programming/C & C++

[C/C++] 문자의 ASCII 번호 출력하는 프로그램 만들기

mdisprgm 2021. 6. 27. 22:53
728x90

강좌를 작성하면서

 

지금까지 잘 따라와줬다면 충분히 작성할 수 있을

 

초간단한 프로그램들을 연습하는

 

'과제'를 올릴 생각이다.

 

이번 포스팅은 그 첫 번째로, 입력한 문자의 ASCII 코드를 알려주는 그런 프로그램을 만들어보자.

 

힌트를 주자면, 정수를 %c로 출력하거나 문자를 %d로 출력하면 해당 숫자, 문자가 ASCII에서 대응되는 것이 무엇인지 찾을 수 있다 :D

 

정답은 아래 팝업을 누르자.

 

▼ 정답 보기
#include <stdio.h>

int main() {
    char ch;

    scanf_s("%c", &ch, 1); //Visual Studio에서 실행할 땐 이렇게..

    printf("%d\n", ch);//문자를 정수로(ASCII에서 대응하는 숫자로)

    return 0;
}

이렇게 하면 정말 간단하게 만들 수 있다

 

그런데 여기서 좀 더 바꿔보면

#include <stdio.h>
#include <conio.h>//_getch()를 위해

int main() {
    char ch = _getch();
    printf("%d\n", ch);
	
    return 0;
}

getch는 조금 특별하게 문자를 입력받는 함수이다.

 

scanf와의 차이점은 버퍼를 통해 입력받지 않는다는 것인데, 

 

버퍼에 저장되지 않는다는 것은 거쳐가는 메모리 공간이 없다는 것이다.

 

따라서 키보드를 누르는 즉시 값이 반환되어 ch에 저장된다.

 

그걸 %d로 출력하면 ASCII 코드 숫자가 나오게 된다.

 

A를 입력했을 때 나오는 숫자,, 97이 나온다면 a를 입력한 것

 

아직 강좌를 쓰지 않은 제어문을 사용하면 이런 코드도 가능한데

#include <stdio.h>
#include <conio.h>//_getch()를 위해

int main() {
    char ch;
    while (1) {//무한 반복한다는 뜻
        ch = _getch();
        if (ch == '0')//입력된 게 '0'이면
            return 0;//종료한다는 뜻
        else if (ch != ' ')//스페이스바가 아니면
            ch++;//다음 알파벳을 출력하도록 + 1을 한다는 뜻
        printf("%c", ch);
    }
    return 0;
}

이렇게 입력한 문자의 다음 알파벳이 출력된다🤣🤣

 

 

가끔 이렇게라도 간단한 코드를 작성하는 게 코딩 실력 향상에 큰 도움이 된다.

 

쓸모없는 것처럼 보이지만 종종 그 과정에서 쓸모있는 지식을 얻을 수 있기 때문.. :)

 

+ 참고로 저 예제에 있는 conio.h 헤더파일은 표준 라이브러리가 아니기 때문에

 

모든 환경에서 동작하지 않는다는 것도 알아두자.

 

 

끝.

728x90

'