문자형

Jaemyeong Lee·2024년 7월 31일
0

FastCampusC++

목록 보기
4/78

문자형 개요

문자형(char)은 C++에서 문자를 표현하는 기본 타입으로, 내부적으로는 정수로 처리됩니다. 보통 1바이트 크기를 가지며, ASCII 코드표를 사용하여 문자와 정수를 상호 변환할 수 있습니다.

문자형의 주요 특징

  • char 타입은 문자를 표현하는 데 사용되며, 내부적으로는 정수형으로 처리됩니다.
  • ASCII 코드표를 통해 문자와 정수 값을 상호 변환할 수 있습니다.
  • 1바이트 크기를 가지며, 256개의 서로 다른 값을 표현할 수 있습니다.
  • 특수 문자를 표현하기 위해 이스케이프 시퀀스(Escape Sequence)를 사용할 수 있습니다.

ASCII 코드표

ASCII (American Standard Code for Information Interchange)는 7비트로 표현 가능한 문자표로, 제어 문자와 출력 가능한 문자로 구성됩니다.

ASCII 코드 예시

문자ASCII 값
'a'97
'A'65
'0'48
' '32
'\n'10

이스케이프 시퀀스

이스케이프 시퀀스는 특정 문자를 표현하기 위해 백슬래시(\)를 사용하는 방법입니다. 주로 다음과 같은 시퀀스가 사용됩니다:

  • \n: 새 줄
  • \t: 탭
  • \b: 백스페이스
  • \a: 경고음
  • \': 작은따옴표
  • \": 큰따옴표
  • \\: 백슬래시 자체

문자형 코드 예제

#include <iostream>

using namespace std;

int main()
{
    {
        // "Hello World", 문자열 출력
        cout << "Hello World" << endl;
    }

    {
        // 'h', 문자 출력
        cout << 'h' << endl;
    }

    {
        // 문자와 정수의 관계
        char ch = 'a';
        cout << ch << endl; // 'a' 출력

        char ch0 = 'a'; // 문자 'a'를 할당
        char ch1 = 97;  // 정수 97을 할당, 이는 'a'와 동일

        cout << "ch0 : " << ch0 << endl; // a
        cout << "ch1 : " << ch1 << endl; // a

        // 문자를 정수로 출력
        cout << "ch0 : " << (int)ch0 << endl; // 97
        cout << "ch1 : " << int(ch1) << endl; // 97

        // 정수를 문자로 출력
        cout << (char)97 << endl; // a
        cout << 97 << endl; // 97
    }

    {
        // 문자의 크기
        cout << "sizeof(char) : " << sizeof(char) << endl; // 1
    }

    {
        // 이스케이프 시퀀스
        cout << "New Line" << endl;
        cout << "Hello World";
        cout << '\n'; // 새 줄
        cout << "Hello World" << endl << endl;

        cout << "Tab" << endl;
        cout << "Hello World";
        cout << '\t'; // 탭
        cout << "Hello World" << endl << endl;

        cout << "Backspace" << endl;
        cout << "Hello World";
        cout << '\b'; // 백스페이스
        cout << "Hello World" << endl << endl;

        cout << "Audio" << endl;
        cout << "Hello World";
        cout << '\a'; // 경고음
        cout << "Hello World" << endl << endl;

        cout << "Single Quotation Mark" << endl;
        cout << "Hello World";
        cout << '\''; // 작은따옴표
        cout << "Hello World" << endl << endl;

        cout << "Double Quotation Mark" << endl;
        cout << "\"Hello World\""; // 큰따옴표
        cout << "Hello World" << endl << endl;

        cout << "Hex" << endl;
        cout << '\x61'; // 16진수로 'a'
        cout << endl << endl;

        cout << "Oct" << endl;
        cout << '\141'; // 8진수로 'a'
        cout << endl << endl;
    }

    {
        // MultiCharacter Literal - 사용 주의, 표준이 아님
        char ch = 'ab'; // 'ab'는 다중 문자 리터럴로 표준이 아님
        int num = 'ab';

        cout << ch << endl; // 출력되지 않음
        cout << num << endl; // 25185 (문자 'a'와 'b'의 결합된 값)
    }
}

주요 개념 설명

  1. 문자형 변수의 선언 및 초기화:

    • char 타입을 사용하여 문자를 저장할 수 있습니다. 내부적으로는 정수형으로 처리됩니다.
    • char ch = 'a'; 와 같이 문자 리터럴을 할당할 수 있습니다.
  2. 문자와 정수의 관계:

    • char 타입의 문자는 내부적으로 ASCII 코드 값으로 저장됩니다.
    • char ch = 'a';char ch = 97; 과 동일한 결과를 가집니다.
    • (int)ch 를 사용하여 문자의 ASCII 값을 확인할 수 있습니다.
  3. 문자의 크기:

    • sizeof(char) 는 1바이트입니다.
  4. 이스케이프 시퀀스:

    • 이스케이프 시퀀스를 사용하여 표현할 수 없는 문자를 출력할 수 있습니다.
    • \n, \t, \b, \a, \', \", \\ 등의 이스케이프 시퀀스가 있습니다.
  5. 다중 문자 리터럴:

    • 다중 문자 리터럴은 표준이 아니며, 사용 시 주의가 필요합니다.
    • 예를 들어, 'ab' 는 두 문자 'a'와 'b'를 결합한 정수 값으로 처리됩니다.
profile
李家네_공부방

0개의 댓글