Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

문타쿠, 공부하다.

[C언어 코딩 도장] Unit 9. 문자 자료형 사용하기 본문

C언어/C언어 코딩 도장

[C언어 코딩 도장] Unit 9. 문자 자료형 사용하기

개발새발 문타쿠 2023. 8. 21. 17:53

INTRO

"문자 자료형"

자료형 크키 범위 비고
char 1바이트(8비트) -128 ~ 127 문자 저장
unsigned char 1바이트(8비트) 0 ~ 255 바이트 단위 데이터 저장
  • 정수 자료형인 char를 이용하여 문자 한 개를 저장
  • char에 문자를 저장할 때는 문자 자체를 저장하는 것이 아니라 문자에 해당하는 정숫값을 저장하게 된다.
    • 각 정숫값(0 ~ 127)이 어떤 문자에 해당하는지 표로 나타낸 것을 아스키 코드라고 한다.
  • 문자는 '작은따옴표'로 (문자 하나만! 두 개 이상 ㄴㄴ) 묶어서 표현

9.1 문자 변수 선언하기

"문자 변수에 문자를 저장하고 출력하기"

#include <stdio.h>

int main(void)
{
	char c1 = 'a';
	char c2 = 'b';

	printf("%c, %d\n", c1, c1);
	printf("%c, %d\n", c2, c2);

	return 0;
}

  • 문자를 출력할 때 서식 지정자는 %c를 사용
  • 만약 서식 지정자로 %d를 사용하여 출력하면 char변수에 저장된 문자의 아스키 코드 값이 출력된다.

"정수로 문자 자료형 사용하기"

#include <stdio.h>

int main(void)
{
	char c3 = 97;
	char c4 = 0x62;

	printf("%c, %d, 0x%x\n", c3, c3, c3);
	printf("%c, %d, 0x%x\n\n", c4, c4, c4);

	// 주의
	char c5 = '0';
	char c6 = 0;

	printf("%c, %d\n", c5, c5);
	printf("%c, %d\n", c6, c6);

	return 0;
}

  • 작은따옴표로 문자를 넣지 않고 정수만으로 문자 자료형을 사용할 수도 있다.
  • 16진수로 출력하려면 서식 지정자 %x를 사용하고, 10진수와 구분하기 위해 0x를 붙여 0x%x로 사용
  • 문자 자료형에 같은 숫자를 저장하더라도 문자('0')와 숫자(0)는 전혀 다르므로 주의!

9.2 문자로 연산하기

#include <stdio.h>

int main(void)
{
	char c1 = 'A';
	
	printf("%d + 1 = %d\n", c1, c1 + 1);
	printf("%c + 1 = %d\n", c1, c1 + 1);

	return 0;
}

  • 문자는 아스키 코드 규칙에 따라 정수로 저장되므로 정수처럼 연산이 가능하다.

9.3 제어 문자 사용하기

#include <stdio.h>

int main(void)
{
	char c1 = 'a';
	char c2 = 'b';
	char lineFeed = '\n';

	printf("%c%c%c%c", c1, lineFeed, c2, lineFeed);
	printf("%d, 0x%x", lineFeed, lineFeed);

	return 0;
}

  • 문자 자료형에는 숫자나 알파벳뿐만 아니라 제어 문자도 저장할 수 있다.
  • 제어 문자라 하더라도 %d, %x로 출력하면 변수에 들어있는 정수가 바로 출력된다.