피씨컴 2013. 1. 31. 13:45

● 문자열

문자를 연속적으로 나열된것

- 컴퓨터의미

데이터로 다루는 일련의 문자

 

- 문자열을 저장하기 위한 자료형이 없다

- 문자를 연속적으로 나열하여 문자열을 표현

- 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)로 통일한 것이 유니코드 문자 집합 입니다.