단순 자료구조 (3) - 문자 (Character)

알고리즘

2020. 2. 18. 19:37

1. 문자 (Character)

 

char는 8비트 정수형 처리 변수로 character(문자)의 약자이다. C언어에서는 unsigned와 signed로 모두 선언하여 사용할 수 있으며, 보통 ASCII 코드등을 사용하기 위한 변수로 많이 사용한다.

 

2. ASCII & ANSI & Unicode

 

Code (4) - Alphanumeric Code

1. ASCII Code 아스키 코드 - 나무위키 UTF-8의 경우 ASCII 영역은 그대로 1바이트를 사용하기 때문에 호환이 된다. 반대로 말하자면 UTF-8 문서라도 ASCII 영역에 해당하는 문자만 적혀 있고 BOM까지 없다면 그냥..

gusdnd852.tistory.com

 

3. 한국어 표현

한글의 처리에서 KS1001 등의 유니코드에서는 16비트 이므로 char 변수에는 값을 치환할 수 없다. char hong = '홍'; 과 같이 쓰면 에러가 발생한다. 한글의 표현을 위해서는 char hong[] = "홍"; 과 같이 문자열로 표현해야하며, "홍"을 위해 2바이트, 스트링의 마지막을 알리는 \0 문자를 위해 3바이트의 배열이 필요하다.

 

4. 정수로서 표현

char를 그냥 8비트변수로 사용할 수도 있다. char a = 1; 이런식으로 그냥 사용하면 된다. -128~127까지 표현가능하다. unsigned 키워드를 붙이면 0부터 255까지 쓸 수 있다.

 

5. Int를 문자료 표현

반대로 int에 ASCII코드를 대입하고 %c를 이용해 출력하면 문자형과 똑같이 표현된다. 아래 코드를 보자.

 

#include<stdio.h>

int main(){
	
	int m = 0x4D;
	int a = 0x41;
	int n = 0x4E;
	int sp = 0x20;
	
	printf("%c%c%c%c%c\n", a, sp, m, a, n);
	
	char mm = 0x4D;
	char aa = 0x41;
	char nn = 0x4E;
	char spp = 0x20;
	
	printf("%c%c%c%c%c\n", aa, spp, mm, aa, nn);
	
	return 0;
} 

 

int로 표현하던 char로 표현하던 같은 결과값 A MAN이 출력된다.