#include <iostream>
using namespace std;
//문자와 문자열
//bool은 그냥 정수지만, 참/거짓을 나타내기 위해 사용함.
//사실 char도 마찬가지, 그냥 정수지만 '문자' 의미를 나타내기 위해 사용
//char: 알파벳 / 숫자 문자를 나타낸다.
//wchar_t : 유니코드 문자를 나타낸다
//ASCII(American Standard Code for Information Interchange)
//'문자'의 의미로 작은 따옴표 '' 사용함
char ch = 'a';
char ch2 = '1';
char ch3 = 'a'+1;
//국제화 시대에는 영어만으로 서비스 할 수 없다.
//전 세계 모든 문자에 대해 유일 코드를 부여한 것이 유니코드(unicode)
//참고) 유니코드에서 가장 많은 번호를 차지하는게 한국어/중국어
//유니코드는 표기 방식이 여러가지가 있다. 대표적으로 UTF8 UTF16
//UTF8
//-알파벳, 숫자 1바이트(아스키와 동일0
//-유럽 지역의 문자는 2바이트
//-한글, 한자 등 3바이트
//UTF16
//-거의 대부분의 문자가 2바이트로 표현됨
//-아주 예외적인 고대문자면 4바이트로 표현(무시해도 됨)
wchar_t wch = L'안'; //UTF16으로 저장됨
//Escape Sequence
//표기하기 애매한 단어를 표현
//\0 = 아스키코드0 = NULL
//\t = 아스키코드9 = tab
//\n = 아스키코드10 = LineFeed (한줄 아래로)
//\r = 아스키코드13 = CarriageReturn (커서<<)
//\' = 작은따옴표를 표현할 수 있다.
//문자열
//문자들이 열을 지어서 모여 있는 것(문자 배열)
//정수 (1~8바이트) 고정 크기
//문자의 경우 크기가 고정적이지 않음
//NULL(아스키코드 0, \0) 이 있어야 문자열의 끝을 알 수 있음.
int main()
{
char str[] = { 'h','e','l','l','o','\0' };
char str2[] = "HELLO"; //크기가 6인 이유 => 자동으로 마지막에 NULL값이 잡혀있음
cout << ch << endl;
cout << ch2 << endl;
cout << ch3 << endl;
//cout은 char 전용이기 때문에 wchar_t는 출력 불가.
cout << wch << endl;
wcout.imbue(locale("kor"));
wcout << wch << endl;
cout << str << endl;
cout << str2 << endl;
}