● 문자열
문자를 연속적으로 나열된것
- 컴퓨터의미
데이터로 다루는 일련의 문자
- 문자열을 저장하기 위한 자료형이 없다
- 문자를 연속적으로 나열하여 문자열을 표현
- char형 배열이 문자열
- 문자열을 표현할때 " " 를 사용
● 문장열 끝에는 항상 NULL(0) 문자가 존재한다.
'\0' == NULL == 0 == 문자열의 끝 구분
● 문자열의 출력시 문자열의 총크기에 상관없이 NULL 끄지만 출력한다
※ 그래서 "ab\0vb"를 출력하면 ab만 나온다
● 사용가능한 크기
일반배열 : 배열의 총 크기
char배열 : 문자열 총크기의 -1 (NULL문자)
● 화면출력
일반배열 : 해당 인덱스만 출력
char배열 : 해당 부분부터 NULL문자전 까지 출력
● 기본적인 자료 사용
일반배열 : 각각 독립적인 변수로 사용
char배열 : 하나의 문자열로서 사용(독립적으로도 사용가능)
● 문자열 상수
값이 변경되지 않는 문자열 상수
● char * : 변수로 상수의 시작위치를 저장할 수 있다.
char * p = "안녕하세요";
cout << p << endl;
--------------------
char str[10] = "abc";
str = "hello";
↑ 상수포인터이며 모배열이라 여기서 한번정한걸 다시 바꿀 수는 없다
● 문자 & 아스키 코드
영문 1바이트
한글 2바이트
● 아스키코드 외에 다른 문자열들은 조합체라고 하여 2바이트를 조합하여 나온 값으로 문자를 표현한다.
● 유니코드는 모든 문자를 2바이트로 취급함으로써 문자 한개가 2바이트 씩 할당하게 된다.
● 멀티바이트 :
a, b, c등등(1byte)의 아스키코드로만 문자를 다 표현할 수가 없으므로 거기에
다른 여러 문자를 포함한(예를 들어 한글(2byte)) 것을 멀티바이트 문자 집합 이라고 합니다.
● 유니코드 :
멀티바이트는 1byte는 물론 2byte여러가지 다양하기에 특정 사이트를 들어가면 깨지는 현상을
볼수가 있는데요 (이유는 정확하지 않지만 아마 몇 바이트로 읽을지 모르니 그렇겟죠??)
방안이 유니코드!! 16bit 의 단일한 값으로 지구상의 모든 문자를 표현할 수 있는 문자코드 체계입니다.
그것을 a, b, c든 한글이든 전체적으로 2byte(16bit)로 통일한 것이 유니코드 문자 집합 입니다.