본문 바로가기

컴퓨터 언어/C++

문자와 문자열

유니코드

 

✔ 전세계 모든 문자에 대해 유일한 코드를 부여한 것이다. 한국어, 중국어가 가장 많은 번호를 차지한다.

 

✔ 여러가지 표기 방식이 있는데, 대표적으로 UTF8과 UTF16이 있다.

 

 

UTF8

 

✔ 알파벳, 숫자 1바이트 (ASCII Code와 동일한 번호)

 

✔ 유럽 지역의 문자 2바이트

 

✔ 한글, 한자 등 아시아 국가 문자 3바이트

 

 

UTF16

 

✔ 거의 대부분의 문자 2바이트 고정

 

✔ 아주 예외적인 고대 문자만 4바이트 (무시해도 될 정도로 드물다)

 

✔ 대부분의 문자의 사이즈가 2바이트로 고정이기 때문에, 아시아 국가에 서비스할때는 이 방식을 사용하기도 한다.

 

wchar_t a = L'가';

int main()
{
	wcout.imbue(locale("kor"));
    wcout << a << endl; //가 출력
}

유니코드를 출력하는 코드이다.

wchar_t (wide character이라는 뜻) 를 사용해서 변수 a가 유니코드 문자임을 나타낸다.  ' '를 사용하면 멀티바이트로 동작하기 때문에 L을 사용해 유니코드임을 나타낸다.

한글을 인식하지 못하기 때문에 wcout.imbue(locale("kor"))으로 한글을 인식하도록 한다.

wcout을 사용해 유니코드를 출력한다.

 

 

Escape Sequence

 

✔ 프로그래밍 언어로 표현할 수 없는 기능과 문자를 표현해준다.

 

✔ \t = 아스키코드 9 = Tab, \n = 아스키코드10 = Linefeed (한줄 아래로), \r = 아스키코드 13 = CarriageReturn (커서 <<) 등등 다양한 기능을 제공한다.

 

✔ \00 아스키 코드로 NULL이라는 뜻.

 

 

문자열

 

✔ 문자들이 열을 지어서 모여있는 것을 뜻한다.

 

✔ 정수는 1~8byte로, 고정된 길이로 저장되지만, 문자열은 가변적이다. 그러므로 컴퓨터가 문자열의 끝을 인식하기 위해서는 Escape Sequence 중 하나인 \00이나 \0이 꼭 들어가있어야 한다. 

char str[] = { 'h','e','l','l','o','\00'}; 
//\0 혹은 \00을 붙여야 끝임을 인식하고 끝낸다.

char str2[] = "Hello World"; 
//11개의 문자이지만 \0까지 자동으로 포함되어서 마우스 커서를 갖다대면 12개의 문자로 뜬다.

 

'컴퓨터 언어 > C++' 카테고리의 다른 글

진수 입력 및 출력  (0) 2023.06.21
precision, fixed 함수  (0) 2023.04.24
srand(time(0))  (0) 2023.03.22
Enum  (0) 2023.03.22
데이터 연산  (0) 2022.11.18