C では、ASCII (American Standard Code for Information)
という表を使って文字と整数値の対応によって文字を表現している。このページにあるように、英数字と記号は、 32 ~ 127 の整数に対応している。
0 ~ 31 は、後述する\0 (NULL)
のような特殊機能のために使われ、「文字」としては画面に見えません。
(例題7-1)
以下のプログラムは、文字を入力するとASCII コードを出力するプログラムです。作成し、実行しましょう。
char 型の入力での書式指定には %c を用いる。char 型の出力での書式指定では、 %d はASCII コードの整数、%c では文字の出力をする。
gcc ex7-1.c -o ex7-1
./ex7-1
Input a character: g
code: 103 character: g
(課題7-1)
例題では、char 型の変数の値を %d と %c を使って出力した。 int 型の変数の値を %d と %c
で出力すると、%d では整数値、 %c では対応する文字を出力する。これを確かめよう。
そこで上のプログラムを変更して、
(実行例)
Input an interger 32 to 127: 111
code: 111 character: o
code: 112 character: p
111 は o に、112 は p に対応する。
型 配列名 [要素数] ; |
char n[10]; |
(例題7-2)
以下のプログラムは名前を入力すると挨拶をするプログラムです。 このプログラムを作成し、実行しましょう。
(実行結果 )
gcc ex7-2.c -o ex7-2
./ex7-2
Input your name, please: Shimpei
Hi Shimpei, How are you doing ?
n[0] | n[1] | n[2] | n[3] | n[4] | n[5] | n[6] | n[7] |
S | h | i | m | p | e | i | \0 |
(実行例)
gcc prog7-2.c -o porg7-2
./prog7-2
Input your first name, please: Shimpei
Input your family name, please: Endo
Month ? February
day ? 29
year ? 2023
==================================
Happy Birth Day to Shimpei Endo !
February 29, 2023
==================================
(課題7-3)
アルファベットの大文字(65 から 90)の文字列を入力して、それを小文字の文字列に変換するプログラムを書いて実行せよ。
アスキーコード表はここ
(実行例)
gcc prog7-3.c -o porg7-3
./prog7-3
Input uppercase letters, please: ENDO
Convert to lowercase letters: endo
(課題7-4)
文字列をchar
型の配列によって表現した場合、1文字ずつ制御することができます。そこで次のようにして入力した文字をさかさまにして出力するプログラムを書いてみま
しょう。
暗号を作る。