문자와 문자열에 대한 C++ 의 사용법
우선 문자는 한글 이외에도 영어, 한자 등 ... 다양하게 존재하지만 그 안에서 단어의 하나하나를 구성하는 요소들을 의미한다.
하지만 문자열은 문자들이 조합된 상태를 열거한 상태를 나타내기에 문자와는 어면히 다른 개념이다.
그럼 이를 C++로 나타내는 방법을 알아보자.
char / wchar_t 을 이용한 방법
char : 알파벳 / 숫자 문자를 나타낸다.
wchar_t : 유니코드 문자를 나타낸다.
(나타내는 문자의 범위 차이만 존재할 뿐이다.)
char ch = 97; 이라 정의하고 이를 cout 를 통해 출력하면
당연한 결과로 97이 출력될 것이라 생각했다.
하지만 a 가 출력이 된다.... 왜??? (그 이유는 ASCII 때문이다..)
ASCII (American Standard Code for Information Interchange)
char ch = 97; 이를 문자로 나타내고 싶다면 ''를 사용하는 것이 좋다.
(그러면 신기하게도 ASCII Code로 변환되지 않는다!!)
자 그럼 문자열도 알아보자!
전 세계 모든 문자에 대해 유일 코드를 부여한 것이 바로 unicode 이다
unicode를 표기방식에는 여러가지가 있는대 대표적으로 UTF8 / UTF16 이 존재한다.
UTF8 / UTF16 둘의 차이는 데이터를 저장하는 용량에 있다.
UTF8
알파벳, 숫자, 1바이트 (ascii와 동일한 번호)
유럽 지역의 문자 2바이트
한글, 한자 등 3바이트
utf 16
알파벳, 숫자, 한글, 한자 등 거의 대부분 문자 2바이트
아주 드물게 고대 문자만 4바이트로 사용된다
여기서 Escape Sequence 표현도 배워두면 유용할 지도?!
Escape Sequence => 표기하기 애매한 애들을 표현
\t = ascii9 = tab
\n = ascii10 = linefeed (한 줄 아래로)
\r = ascii13 = carriagereturn (커서 <<)
char / wchar_t 을 이용한 방법
char str1[] = {'g', 'r', 'e', 'e', 't', '\0'};
char str2[] = "greet";
wchar_t str3[] = L"greet";
사실 전에 C++를 배울 때, char, wchar_t 이외에도 String을 이용한 방법을 통해 간단하게 문자열을 만들었다.
#include <String.h> 를 선언 후,
#include <iostream>
#include <String.h>
using namespace std;
int main() {
String str = 'Mangojoa';
cout << str << endl;
}
Java 에서 사용하는 것과 같이 사용하면 된다.
char, wchar_t 와 달리 import 이후, 간단하게 사용하면 된다는 장점이 있다.