これまでは,数字を主に扱ってきました.今週は,文字を取り上げます.
コンピュータ内部は,二進数の数字の世界でした.それでは,文字はどうやって表現するのでしょう? → 文字コード
コンピュータでは,英数字などの文字をそれぞれ0から127の番号に対応させて管理しています.
一般に文字コードを表現するには16進数を用います.下の表では,横が16進数の2桁目,縦が16進数の1桁目を表し,赤い文字で10進数の値を書きました.たとえば,大文字の「A」は,16進数では「41」,10進数では「65」で表されます.16進数で00から20までには,特殊な意味のある文字が割り当てられています.
文字コード表
| 00 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | |
| 0 | NUL 0 | DLE 16 | SP 32 | 0 48 | @ 64 | P 80 | ` 96 | p 112 | 
| 1 | SOH 1 | DC1 17 | ! 33 | 1 49 | A 65 | Q 81 | a 97 | q 113 | 
| 2 | STX 2 | DC2 18 | " 34 | 2 50 | B 66 | R 82 | b 98 | r 114 | 
| 3 | ETX 3 | DC3 19 | # 35 | 3 51 | C 67 | S 83 | c 99 | s 115 | 
| 4 | EOT 4 | DC4 20 | $ 36 | 4 52 | D 68 | T 84 | d 100 | t 116 | 
| 5 | ENQ 5 | NAK 21 | % 37 | 5 53 | E 69 | U 85 | e 101 | u 117 | 
| 6 | ACK 6 | SYN 22 | & 38 | 6 54 | F 70 | V 86 | f 102 | v 118 | 
| 7 | BEL 7 | ETB 23 | ' 39 | 7 55 | G 71 | W 87 | g 103 | w 119 | 
| 8 | BS 8 | CAN 24 | ( 40 | 8 56 | H 72 | X 88 | h 104 | x 120 | 
| 9 | HT 9 | EM 25 | ) 41 | 9 57 | I 73 | Y 89 | i 105 | y 121 | 
| A | LF 10 | SUB 26 | * 42 | : 58 | J 74 | Z 90 | j 106 | z 122 | 
| B | VT 11 | ESC 27 | + 43 | ; 59 | K 75 | [ 91 | k 107 | { 123 | 
| C | FF 12 | FS 28 | , 44 | < 60 | L 76 | \ 92 | l 108 | | 124 | 
| D | CR 13 | GS 29 | - 45 | = 61 | M 77 | ] 93 | m 109 | } 125 | 
| E | SO 14 | RS 30 | . 46 | > 62 | N 78 | ^ 94 | n 110 | ~ 126 | 
| F | SI 15 | US 31 | / 47 | ? 63 | O 79 | _ 95 | o 111 | DEL 127 | 
C言語で文字といば,英語の半角の文字で,これを格納するための変数が char 型です.文字をプログラム中で表すときは,シングルクオーテーションで囲みます.(例:'A')
例:
#include <stdio.h>
void main()
{
    char c;
    printf("1文字入力してください");
    c = getchar();        /* キーボードから半角文字1つを得る命令 */
    printf("%d\n", c);
    printf("%c\n", c);  
}
							実行結果は,どうなりましたか?
参考:書式指定子
| %d | 10進数 | 
| %o | 8進数 | 
| %x | 16進数 | 
| %f | 浮動小数点 | 
| %c | 1文字 | 
| %s | 文字列 | 
[注意] 文字型 char には,半角1文字だけしか代入できません.また,漢字なども代入できません.
コンピュータ内では,文字は全て数字として扱われます.では,
    a = 'd';
    a++;
    printf("%c",a);
とすると,どうなるでしょう.
																							キーボードから1文字小文字を入力すると,大文字に変換して画面に表示するプログラムを作成する.