본문 바로가기
프로그래밍

[C 문자형] 문자형, 아스키코드 연산, 문자계산, sizeof연산자

by 스텔라게이트 2023. 3. 25.

[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 연산자는 왜 쓰는 것 일까요?  

  1. 자료형의 크기를 알고 싶을 때 사용합니다. 
  2. 동적할당 등에 유용하게 사용
  3. 결과값은 바이트 단위의 크기 

 

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연산자에 대한 글이였습니다.

읽어주셔서 감사합니다. 

 

반응형

댓글