독학으로 배우는 C언어 011 자료형과 연산 5
Contents
1. 문자형
C언어에서 지원하는 문자형에는 unsigned char 형, char 형 두 가지가 있다.
문자형 | 바이트수 | 음수 사용 | 데이타 허용범위 | 형식 지정자 |
char | 1 | 유 | -128 ~ 127 | %c or %d |
unsigned char | 1 | 무 | 0 ~ 255 | %u |
문자형은 문자 데이터를 처리할 때 사용되는 데 내부적으로는 문자의 아스키코드가 정수의 형태로 사용된다.
형식 표시자로 %d, %o, %x, %u 를 지정하면 아스키코드가 표시된다.
반대로 0~255 사이의 정수를 형식 표시자 %c를 사용하여 출력하면 해당 정수의 아스키 문자가 표시된다. 즉 문자 데이터의 수치 허용범위 안에서는 정수와 호환성을 갖는다.
실습 1: 문자의 출력
다음의 프로그램을 작성하여 ex024.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
char a, b, c;
a = 'A';
b = 'b';
c = '8';
printf("%c %c %c\n", a, b, c);
return 0;
}
◉ 설명 : 행 설명
4: 변수 a,b,c 를 문자형 변수로 선언한다.
C언어에서 문자형이란 하나의 문자를 말한다. 여러 개의 문자로 구성된 단어는 문자열이다.
5: 6: 7: 문자형 변수에 문자를 대입할 때는 ' ' 로 묶어서 대입한다.
“ ”를 사용하면 오류가 발생하므로 ‘ ’ 만 사용해야 한다.
8: 문자형 변수의 내용을 표시할 때는 %c로 지정한다.
실습 2: 문자의 출력2
다음의 프로그램을 작성하여 ex025.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
char a, b, c, d, e;
a = 'k', b = 'o', c = 'r', d = 'e', e = 'a';
printf("%c%c%c%c%c\n", a, b, c, d, e);
return 0;
}
실습 3: ASCII 코드의 값 표시
다음의 프로그램을 작성하여 ex026.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
char a, b, c;
a = 'A';
b = 'b';
c = '5';
printf("%d %d %d\n", a, b, c);
return 0;
}
◉ 설명 : 행 설명
8: 형식 지정자로 %c를 사용하면 문자가 출력되지만, 형식 지정자로 %d를 사용하면 문자에 해당하는 ASCII 코드 값이 출력된다.
ASCII 코드
0진수 | 문자 | 10진수 | 문자 |
0 | NUL, NULL(Ctrl + @) | 64 | @ |
1 | SOH, Start of Header(Ctrl + A) | 65 | A |
2 | STX, Start of Text(Ctrl + B) | 66 | B |
3 | ETX, End of Text(Ctrl + C) | 67 | C |
4 | EOT,End of Transmission(Ctrl + D) | 68 | D |
5 | ENQ, Enquiry(Ctrl + E) | 69 | E |
6 | ACK, Acknowledgment(Ctrl + F) | 70 | F |
7 | BEL, Bell(Ctrl + G) | 71 | G |
8 | BS, Backspace(Ctrl + H) | 72 | H |
9 | HT, Horizontal Tab(Ctrl + I) | 73 | I |
10 | LF, Line feed(Ctrl + J) | 74 | J |
11 | VT, Vertical Tab(Ctrl + K) | 75 | K |
12 | FF, Form feed(Ctrl + L) | 76 | L |
13 | CR, Carriage return(Ctrl + M) | 77 | M |
14 | SO, Shift Out(Ctrl + N) | 78 | N |
15 | SI, Shift In(Ctrl + O) | 79 | O |
16 | DLE, Data Link Escape(Ctrl + P) | 80 | P |
17 | DC1, Device Control 1(Ctrl + Q) | 81 | Q |
18 | DC2,Device Control2(Ctrl + R) | 82 | R |
19 | DC3,Device Control3(Ctrl + S) | 83 | S |
20 | DC4,Device Control4(Ctrl + T) | 84 | T |
21 | NAK, Negative Ack.(Ctrl + U) | 85 | U |
22 | SYN, Synchronous idle(Ctrl + V) | 86 | V |
23 | ETB, End of Trnas, Block(Ctrl + W) | 87 | W |
24 | CAN, Cancel(Ctrl + X) | 88 | X |
25 | EM, End of Medium(Ctrl + Y) | 89 | Y |
26 | SUB, Substitute(Ctrl + Z) | 90 | Z |
27 | ESC, Escape(Ctrl + [) | 91 | [ |
28 | FS, File Separator(Ctrl + \) | 92 | \ |
29 | GS, Group Separator(Ctrl + ]) | 93 | ] |
30 | RS, Record Separator(Ctrl + ^) | 94 | ^ |
31 | US, Unit Separator(Ctrl + _) | 95 | _ |
32 | SP, Space | 96 | ' |
33 | ! | 97 | a |
34 | " | 98 | b |
35 | # | 99 | c |
36 | $ | 100 | d |
37 | % | 101 | e |
38 | & | 102 | f |
39 | ' | 103 | g |
40 | ( | 104 | h |
41 | ) | 105 | i |
42 | * | 106 | j |
43 | + | 107 | k |
44 | , | 108 | l |
45 | - | 109 | m |
46 | . | 110 | n |
47 | / | 111 | o |
48 | 0 | 112 | p |
49 | 1 | 113 | q |
50 | 2 | 114 | r |
51 | 3 | 115 | s |
52 | 4 | 116 | t |
53 | 5 | 117 | u |
54 | 6 | 118 | v |
55 | 7 | 119 | w |
56 | 8 | 120 | x |
57 | 9 | 121 | y |
58 | : | 122 | z |
59 | ; | 123 | { |
60 | < | 124 | | |
61 | = | 125 | } |
62 | > | 126 | ~ |
63 | ? | 127 | DEL, Del |
실습 4: ASCII 코드의 표시
다음의 프로그램을 작성하여 ex027.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
int a, b, c;
a = 65;
b = 98;
c = 56;
printf("%c %c %c\n", a, b, c);
return 0;
}
◉ 설명 : 행 설명
정수형 변수에 숫자를 대입하고 출력할 때 형식 지정자로 %c를 사용하면 숫자에 해당하는 ASCII 코드 문자가 출력된다.
실습 5: ASCII 코드의 표시
다음의 프로그램을 작성하여 ex028.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
unsigned int a, b, c;
a = 65;
b = 66;
c = 67;
printf("%c %c %c\n", a, b, c);
printf("%d %d %d\n", a, b, c);
return 0;
}
확인 문제
1) X, Y, Z 에 대한 ASCII 코드 값을 출력하는 프로그램을 작성해 보자.
2) seoul을 변수에 각각 저장하여 출력하는 프로그램을 작성해 보자.
2. 형식 지정자 %c 활용
%c 는 문자형(char)으로 선언된 인수를 1개의 문자로 변환해 준다.
2개의 문자를 변환해 주지는 않는다.
실습 6: %c 의 활용
다음의 프로그램을 작성하여 ex029.c 저장하고 실행해 보자.
#include<stdio.h>
int main(void)
{
char a, b, c, d, e;
a = 'K';
b = 'O';
c = 'R';
d = 'E';
e = 'A';
printf("%c%c%c%c%c\n", a, b, c, d, e);
printf("%5c%5c%5c%5c%5c\n", a, b, c, d, e);
printf("%-5c%-5c%-5c%-5c%-5c\n", a, b, c, d, e);
return 0;
}
◉ 설명 : 행 설명
("%c",c) | A | 문자 출력 |
("%5c",c) | ....A | 오른쪽을 기준으로 출력 |
("%-5c",c) | A.... | 왼쪽을 기준으로 출력 |
'C 프로그래밍' 카테고리의 다른 글
독학으로 배우는 C언어 013 문자열 데이터의 출력 (0) | 2024.07.01 |
---|---|
독학으로 배우는 C언어 012 자료형과 연산 6 (0) | 2024.06.25 |
독학으로 배우는 C언어 010 자료형과 연산 4 (0) | 2024.06.16 |
독학으로 배우는 C언어 009 자료형과 연산 3 (0) | 2024.06.12 |
독학으로 배우는 C언어 008 자료형과 연산 2 (2) | 2024.06.10 |
댓글