프로그래머/CPP_강의정리

cpp 문자와 문자열

미역국마싯 2021. 8. 17. 17:23

문자

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

여기서 char 도 bool 타입과 마찬가지로 정수지만, 문자 의미를 나타내기 위해 사용한다.

char ch = 97;	// ASCII 코드에서 97은 a를 나타낸다.

ASCII(영어전용)는 검색하면 잘 나와있다.

이런 식으로 숫자를 이용해서 문자를 나타내려면, 검색을 하거나 미리 외울 필요가 있다.

char ch1 = 'a';
char ch2 = '1';	// ASCII = 49번, 문자 1을 나타냄

그래서 위처럼 작음 따옴표를 이용해서 문자를 표현한다.

ASCII코드는 영어만 사용할 경우 유용하다.

하지만 요즘 시대에는 언제 다른 나라에 서비스할지 모르기 때문에 적합하지 않다.

글로벌 시대에 맞는 문자 변환 방식에는 unicode가 있다.

 

unicode(전 세계용)는 ASCII와 달리 하나의 표기 방식이 아니다.

  • UTF8
    • 알파벳, 숫자(ASCII 동일), 1 byte
    • 유럽 지역의 문자는 2 byte
    • 한글, 한자 등은 3 byte
  • UTF16
    • 알파벳, 숫자, 한글, 한자 등 거의 대부분의 문자가 2 byte
wchar_t wch = L'글';	// UTF16

참고로 cout << ch << endl; 코드에서 cout 는 char 전용이다.

따라서 cout 로 wchar_t형의 문자를 정확히 나타낼 수 없다.

int main()
{
wcout.imbue(locale("kor"));	// 한글 인식기
wcout << wch << endl;
}

 

특수 문자 표기(Escape Sequence)

\t = ASCII 9 = Tab
\n = ASCII 10 = LineFeed (한 줄 아래)

위 예시처럼 \를 이용해서 특수 문자를 표기하는 게 일반적이다.

잘 정리한 표는 escape sequence를 검색하면 잘 나와있다.

 

문자열

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

정수 1~8 byte 고정 길이로 나타낸다.

하나 중요한 것은 ASCII 코드 0번 null을 문자열 맨 끝에 적어야 문자열임을 인식한다.

// 문자열 = 문자 배열
char str[] = { 'h', 'e', 'l', 'l', 'o', '\0' };
char str2[] = "Hello";	// \0이 생략, 글자수는 6개

 

 

출처

https://www.inflearn.com/course/%EC%96%B8%EB%A6%AC%EC%96%BC-3d-mmorpg-1/dashboard

 

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의

시리즈를 원활하게 학습하기 위한 기초적인 C++ 문법들에 대해 학습합니다. 어셈블리 언어부터 시작해서 기본 C++ 문법, STL, C++11까지 핵심적인 내용을 압축해서 다루게 됩니다., - 강의 소개 | 인

www.inflearn.com

'프로그래머 > CPP_강의정리' 카테고리의 다른 글

cpp 데이터 TIP  (0) 2021.09.05
cpp const와 메모리 구조  (0) 2021.09.04
cpp 비트 연산과 비트 플래그  (0) 2021.08.21
cpp 불리언과 실수  (0) 2021.08.16
cpp 정수  (0) 2021.08.15