문타쿠, 공부하다.
[C언어 코딩 도장] Unit 9. 문자 자료형 사용하기 본문
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로 출력하면 변수에 들어있는 정수가 바로 출력된다.
'C언어 > C언어 코딩 도장' 카테고리의 다른 글
[C언어 코딩 도장] Unit 10. 상수 사용하기 (0) | 2023.08.21 |
---|---|
[C언어 코딩 도장] Unit 9. 연습문제 및 심사문제 (0) | 2023.08.21 |
[C언어 코딩 도장] Unit 8. 연습문제 및 심사문제 (0) | 2023.08.17 |
[C언어 코딩 도장] Unit 8. 실수 자료형 사용하기 (0) | 2023.08.17 |
[C언어 코딩 도장] Unit 7. 연습문제 및 심사문제 (0) | 2023.08.16 |