문자와 문자열

namu·2022년 7월 1일

bool은 그냥 정수지만, 참/거짓을 나타내기 위해 사용한다고 했다.
char도 마찬가지. 그냥 정수지만 '문자' 의미를 나타내기 위해 사용

char : 알파벳 / 숫자 문자를 나타낸다
wchar_t : 유니코드 문자를 나타낸다

ASCII (American Standard Code for Information Interchange)

'문자'의 의미로 작은 따옴표 '' 사용
char ch = 'a';
char ch2 = '1';

국제화 시대에는 영어만으로 서비스할 수 없음
전 세계 모든 문자에 대해 유일 코드를 부여한 것이 유니코드 (unicode)
참고) 유니코드에서 가장 많은 번호를 차지하는 게 한국어/중국어 (뚥쿩왥)

유니코드는 표기 방식이 여러가지가 있는데 대표적으로 UTF8 UTF16
UTF8

  • 알파벳, 숫자 1바이트 (ASCII와 동일한 번호)
  • 유럽 지역의 문자는 2바이트
  • 한글, 한자 등 3바이트

UTF16

  • 알파벳, 숫자, 한글, 한자 등 거의 대부분 문자 2바이트
  • 매우 예외적인 고대 문자만 4바이트 (사실상 무시해도 됨)

wchar_t wch = L'안';
cout << wch; // 50504 출력

// cout은 char 전용
wcout.imbue(locale("kor)); // 기본적으로 한국어를 인식 못하기 때문에 인식해달라고 힌트를 준다.
wcout << wch; // 안 출력

wchar_t wch = 0xc548; // L'안'

Escape Sequence
표기하기 애매한 애들을 표현
\0 = 아스키코드0 = NULL
\t = 아스키코드9 = Tab
\n = 아스키코드10 = LineFeed (한줄 아래로)
\r = 아스키코드13 = CarriageReturn (커서 <<)
(\r\n <- 엔터)
\'

문자열
문자들이 열을 지어서 모여 있는 것 (문자 배열)
정수 (1~8바이트) 고정 길이로
Ex) Hello World
끝은 NULL (0)

char str[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
char str2[] = "Hello World";
wchar_t str3[] = L"Hello World";

profile
안녕하세요

0개의 댓글