본문 바로가기
■ Programming /C++

[C++] 4-5. [데이터 타입/ 자료형] 문자형 데이터 타입 사용과 이스케이프 문자

by Popbox 2017. 3. 20.
반응형

[C++] 4-5. [데이터 타입/ 자료형] 문자형 데이터 타입 사용과 이스케이프 문자

 

 

[뇌를 자극하는 C++ , 저.이현창]책을 기준으로 작성하였습니다

 

 

문자형 데이터 타입 사용과 이스케이프 문자

 

이번 시간은 문자를 저장할 수 있는 문자 타입과 이스케이프 문자열(개행문자)에 대해 알아보겠습니다. 프로그래밍의 핵심이 바로 문자열이죠!? (데이터 입출력...)

무튼, 문자열의 기초! char 에 대해 배워 봅시다.

 

 

  1. 문자형 타입

 

(char , wchar_t)

문자형 타입은 문자를 보관하는 데 사용합니다.

char는 표현할 수 있는 문자의 수가 제한적인 반면에 wchar_t는 세계 각국의 문자와 기호를 표현할 수 이다. 실제 프로그래밍 시에는 char를 주로 사용하고 wchar_t는 특별히 요구되는 상황에서 사용함.

(char형은 1byte 크기에 8bit 만큼의 수를 표현합니다.즉, 2^8 ,  256가지 표현이 가능)

 

 

1
2
3
4
5
6
7
 //char 타입 변수 정의
    char a;
    char b;
 
    //문자 대입
    a = 'A';
    b = 'B';
cs

 

-> 소스에서 확인 하듯이 char형 변수는 문자 1개만 저장할 수 있다.

또한, 작은 따옴표로 감싸줘야한다.(나중에 배우는 문자열은 쌍 따옴표를 이용)

 

 

  2.  아스키 코드 (ASCII)

 

(ASCII = American Standard Code for Information Interchange)

아스키 코드는 char형으로 표현할 수 있는 문자를 컴퓨터도 이해할 수 있게 해주는 약속이다.

우리가 쓰는 'A'는 숫자65와 대응된다.즉, 우리는 A로 보지만 컴퓨터는 65로 읽는다.

 

 

1
2
3
4
5
6
7
//A의 아스키 코드 값 확인
    int a = 'A';
    cout << "문자 A의 아스키 코드 값 : " << a << endl;
 
    //65의 문자로 표현
    char b = 65;
    cout << "상수 65를 문자로 표현하면 : " << b << endl;
cs

 

아스키 코드표 보러가기 :  http://popbox.tistory.com/12

 

 

 

 

  3. 이스케이프 문자열

우리가 글을 쓸때 사용하는 줄바꿈(엔터), 띄어쓰기 같은 것들은 전부 문자입니다.
컴퓨터는 문자로 인식하고 이를 처리해 주는 것입니다.
C++에서는 이러한 종류의 특수 문자를 의미하는 암호를 하나 만들어 냈습니다.
그것이 바로 이스케이프 문자열입니다.
모든 이스케이프 문자열은 역슬래쉬(\)로 시작합니다.
역슬래쉬 뒤에는 약속된 다양한 문자가 와서 여러 가지 특수 문자를 의미하게 됩니다.

 
(아스키 코드표에 나와있지만... 대표적인 걸로다가..)

 

간단한 예로,
줄바꿈 객체인 endl 을 안쓰고 \n(개행문자)를 사용해 보겠습니다.

 

1
2
3
//개행문자 사용
    cout << "개행문자 테스트 \n";
    cout << "테스트";
cs

 

 

 

 

  3. 넓은 문자의 사용

 

wchar_t타입은 보통 2바이트의 크기를 갖습니다.(char은 1바이트)

그렇기 때문에 char타입보다 훨씬 많은 문자를  표현할 수 있습니다.

그러나 wchar_t타입 역시 char타입이 작동하는 방법과 다르지 않은데

wchar_t는 아스키 코드(ASCII) 대신에 유니 코드(Unicode)와 같은 세계 각국의 문자와 기호를 정의해

놓은 코드를 사용해서 그 값을 해석하게 됩니다.


wchar_t타입에 문자를 대입하는 경우에는 다음과 같이 합니다.!

1
2
3
//유니코드
    wchar_t wc;
    wc = L'(';
cs

 

 

-> 문자 상수 앞에 L을 붙이면 이 상수가 wchar_t타입에 상응한다는 의미가 됩니다.

 

 

 

 

 

 감사합니다. 공감 한번 부탁드려요.

[ 다음 장 ]

[ C++ ] 4-6 . [데이터 타입/자료형]  bool타입 :  http://popbox.tistory.com/34 

 

반응형

댓글