[C 문자형] 문자형, 아스키코드 연산, 문자계산, sizeof연산자
[C 문자형] 문자형, 아스키코드 연산, 문자계산, sizeof연산자
c언어 문자형에 대한 자세한 설명과 예시 + 아스키코드, 문자 연산방식, sizeof 연산자 사용방법 또한 알아보겠습니다.
C언어 문자형
- char (캐릭터)
- signed char
- unsigned char
- C에서 문자는 정수로 바꾼 뒤 저장이 됩니다.
- 정수변환 규칙은 : 아스키[ASCII]코드를 따릅니다.
아스키코드란?!
아스키 코드(ASCII Code)란
ASCII - ( American Standard Code for Information Interchange, 미국 정보 교환 표준 부호 )
아스키코드는 미국 ANSI(미국 국가표준 협회)에서 표준화한 정보 교환용 7비트 부호체계.
- 영문 알파벳을 사용하는 대표적인 문자 인코딩.
- 컴퓨터와 통신장비를 비롯하여 문자를 많이 사용되는 장치에 사용.
- 대부분의 문자 인코딩이 아스키코드에 기초를 두고 있다.
- 영문 키보드로 입력 할수있는 모든 기호들이 할당되어 있음
아스키 코드표(ASCII Code Table)
느낌표를 저장하게 되면 느낌표 자체가 저장되는 것이 아니라 33이라는 숫자로 바뀐 다음에 저장이 되는 것 입니다.
C언어 문자의 저장과 계산
문자는 정수로 바뀐 다음에 계산이 됩니다.
그래서 A는 65가 되고 (위 아스키코드 참고), B는 65로 바뀐 정수에서 5가 더 해지므로 70이 됩니다.
그래서 printf 로 출력을 하게 될 경우 %d는 숫자, %c는 아스키코드를 보고 문자를 찾아 출력이 되는 것 입니다.
C문자형 예제1
각각의 문자 아스키 코드에서 '정수'로 바꾼 다음에 해석합니다.
그렇다면 위와 같이 프로그램을 짤 경우 어떤 결과가 나올까요?
예상이 되십니까?
위의 그림과 같은 방법으로 65부터 90까지 출력이 됩니다.
C문자형 예제2
변수 a에 저장된 문자가 알파벳 소문자인지 아닌지 알고 싶다. 어떻게 프로그램을 짜야 할까요?!
a 아스키 코드 이상이며 z 아스키 코드 이하라면 --> 소문자 이기에 간단히 위와 같이 짤 수 있습니다.
C문자형 예제3
변수 a 에 저장된 소문자를 대문자로 바꾸는 방법을 알고 싶다. 어떻게 프로그램을 짜야 할까요?!
막연히 생각한다면 어떻게 해야 할지 모를 수 있습니다. 하지만 모든 문자형은 정수로 변경 된 뒤 계산이 되므로 아래와 같이 작업을 한다면 쉽게 대문자로 변경을 할 수 있습니다.
a에 e가 저장되어 있다고 할때, a[e]에서 소문자a 를 뺀다면 e-a로 [141-145] = 4 라는 값이 남습니다.
그 상태에서 A를 더하면 4 + A [101] = 105[E] 가 되는 것 입니다.
즉, 아스키코드 상에서 소문자와 대문자가 똑 같이 배열 되어 있음을 이용해서 이와 같은 수식을 사용할 수 있습니다.
C언어 문자형과 정수형
문자형은 정수형에 포함
C의 자료형
C의 자료형은 정수형과 실수형으로 나눌 수 있으며, 정수형은 정수형과 문자형으로 나눌 수 있습니다.
C의 문자형
C의 문자형에서는 signed char (케릭터)를 통해 음수와 양수형 모두
unsigned char 를 통해 양수형만
char를 적게 되면 8비트 인것은 동일하나, 컴퓨터나 운영체제에 따라 signed char 또는 unsigned char로 적용 됩니다.
sizeof 연산자
sizeof 연산자란?!
sizeof 연산자는 왜 쓰는 것 일까요?
- 자료형의 크기를 알고 싶을 때 사용합니다.
- 동적할당 등에 유용하게 사용
- 결과값은 바이트 단위의 크기
sizeof 연산자는 c언어를 나중에 좀 원활히 다루기 시작하시게 되면 동적할당 등에 유용하게 쓰일 수 있으니 참고 바랍니다.
위와 같이 sizeof 다음에 자료형이 오면 ( ) 를 사용해 줘야하며,
sizeof 다음에 변수나 수식이 오면 ( ) 를 생략 해줘도 됩니다.
2023.03.25 - [IT] - [자료형 형변환] 정수형 정수형의 변환 명세 [쉬운 설명과 예시]
2023.03.25 - [IT] - [자료형 형변환] 실수형과 실수형의 변환 명세 [쉬운 설명과 예시]
자료형 관련 자료는 위 링크를 참조 바랍니다.
sizeof 예제
sizeof 결과는 아래와 같습니다.
short 자료형은 2 바이트
int 자료형은 4 바이트
long 자료형은 4바이트
float 자료형은 4바이트
double 자료형은 8바이트
long double 자료형은 8바이트
char(케릭터)는 1바이트로 나옵니다.
각 자료형의 크기는 컴퓨터나 운영체제에 의해 달라질 수 있는점 참고 바랍니다.
이상 [C 문자형] 문자형, 아스키코드 연산, 문자계산, sizeof연산자에 대한 글이였습니다.
읽어주셔서 감사합니다.