본문 바로가기
C 프로그래밍

독학으로 배우는 C언어 011 자료형과 연산 5

by 솔토지빈 2024. 6. 20.
반응형

독학으로 배우는 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.... 왼쪽을 기준으로 출력
    반응형

    댓글