C 언어에서 int형 값을 char형 문자로 사용하는 방법

리로린·2024년 8월 12일
0

c 언어

목록 보기
1/10
  1. int와 char의 차이점
    먼저, C 언어에서 int와 char가 어떻게 다른지 간략히 살펴보자.
  • int: 정수형 데이터를 저장하는 데 사용한다. 일반적으로 4바이트(32비트)를 차지하며, -2,147,483,648부터 2,147,483,647까지의 정수를 저장할 수 있다.

  • char: 문자형 데이터를 저장하는 데 사용한다. 1바이트(8비트)를 차지하며, 아스키(ASCII) 문자 하나를 저장할 수 있다. 아스키 코드 체계에서 문자 'A'는 65, '0'은 48과 같은 정수값으로 표현된다.

  1. 아스키 코드(ASCII Code)란?
    이제, 아스키 코드가 무엇인지 알아보자. 아스키 코드는 문자와 숫자를 이진수로 표현하기 위해 사용하는 코드 체계이다. 이 체계는 문자, 숫자, 기호 등의 값을 7비트 또는 8비트의 이진수로 표현한다. 예를 들어:
  • '0'의 아스키 코드 값은 48이다.
  • 'A'의 아스키 코드 값은 65이다.
  • 'a'의 아스키 코드 값은 97이다.
  • 아스키 코드를 사용하면 숫자와 문자를 쉽게 변환할 수 있다.
  1. int형 숫자를 char형 문자로 변환하기
    그렇다면, int형 값을 char형 문자로 변환하는 방법에 대해 알아보자. C 언어에서는 숫자 0에서 9까지를 문자로 변환할 때 아스키 코드 값을 활용하는 것이 일반적이다. 이를 위해, 해당 숫자에 '0'을 더하면 된다.
예제 1: 한 자리 숫자를 문자로 변환하기

#include <stdio.h>

int main() {
    int num = 5;
    char c = num + '0';  // 숫자 5를 문자 '5'로 변환
    printf("문자: %c\n", c);  // 출력: 문자: 5
    return 0;
}
이 코드에서 num이 5일 때, '0'을 더하면 문자 '5'에 해당하는 아스키 코드 값 53이 된다. 이를 char형 변수에 저장하고 출력하면 '5'라는 문자가 나타난다.
예제 2: 두 자리 숫자를 개별 문자로 변환하기
두 자리 숫자를 문자로 변환할 때는, 십의 자리와 일의 자리를 분리하여 각각 문자로 변환해야 한다.

int main() {
    int num = 42;
    char tens = (num / 10) + '0';  // 십의 자리: '4'
    char ones = (num % 10) + '0';  // 일의 자리: '2'

    printf("십의 자리: %c, 일의 자리: %c\n", tens, ones);  // 출력: 십의 자리: 4, 일의 자리: 2
    return 0;
}
  • 여기서 42라는 숫자는 먼저 4와 2로 나뉘고, 각각 '4'와 '2'로 변환되어 출력된다.
  1. 문자 입력을 숫자로 변환하기
    반대로, char형 문자를 int형 숫자로 변환할 수도 있다. 이 경우, 문자에서 '0'을 빼면 된다.
예제 3: 문자를 숫자로 변환하기
#include <stdio.h>

int main() {
    char c = '7';
    int num = c - '0';  // 문자 '7'을 숫자 7로 변환

    printf("숫자: %d\n", num);  // 출력: 숫자: 7
    return 0;
}
  • 여기서 '7'이라는 문자는 아스키 코드 값으로 55이므로, '0'을 빼면 7이 된다. 이렇게 하면 문자를 숫자로 변환할 수 있다.
  1. 숫자와 문자를 자유롭게 변환하는 실전 예제
    이제, 사용자로부터 숫자를 입력받아 각 자리수를 문자로 출력하는 프로그램을 만들어 보자.
#include <stdio.h>

int main() {
    int num;

    printf("숫자를 입력하세요: ");
    scanf("%d", &num);  // 사용자로부터 숫자 입력 받기

    // 숫자를 문자로 변환하여 출력하기
    if (num >= 0 && num < 10) {
        printf("한 자리 숫자: %c\n", num + '0');
    } else if (num >= 10 && num < 100) {
        printf("두 자리 숫자: %c%c\n", (num / 10) + '0', (num % 10) + '0');
    } else {
        printf("두 자리 이하의 숫자만 입력하세요.\n");
    }

    return 0;
}
  • 이 프로그램은 사용자가 입력한 숫자를 문자로 변환하여 출력한다. 한 자리 숫자와 두 자리 숫자를 처리할 수 있다.
profile
리로린의 블로그

0개의 댓글