今回は「文字」の範囲チェックについて書きます。
「文字コード表」の「アルファベット大文字」を見てください。
'A'は「10進数」で65、'Z'は「10進数」で90ですよね。
'A'から'Z'までの間、ずっと連続した数値が続いています。
これを元に以下のプログラムを作ってみてください。
・入力された文字がアルファベットの大文字かどうか調べ、大文字であれば「Uppercase」と表示させます。
解答例です。
#include <stdio.h> int main(void) { char data; scanf("%c", &data); if (data >= 65 && data <= 90) { printf("Uppercase\n"); } return 0; } |
<実行結果>
D Uppercase 続行するには何かキーを押してください・・・
<実行結果>
d 続行するには何かキーを押してください・・・
入力された「文字」が「10進数」で65以上、90以下の範囲であれば、「大文字」になります。
当然、↓のように書いても大丈夫です。
<sample program 079-02>
#include <stdio.h> int main(void) { char data; scanf("%c", &data); if (data >= 'A' && data <= 'Z') { printf("Uppercase\n"); } return 0; } |
<実行結果>
D Uppercase 続行するには何かキーを押してください・・・
入力された「文字」が'A'以上、'Z'以下の範囲であれば、「大文字」になります。
見た目にはこちらの方が分かりやすいかも知れません。
同じように「小文字」かどうかのプログラムも作れそうです。
これは皆さんで作って試してみてください。
※解答例は書きません。
さて、次は「アルファベット」かどうかチェックするプログラムを作ってみましょう。
・「大文字」でも「小文字」でも「アルファベット」であれば「Alphabet」と表示します。
「文字コード表」をよく見て作ってください。
解答例です。
<sample program 079-03>
#include <stdio.h> int main(void) { char data; scanf("%c", &data); if (data >= 'A' && data <= 'Z' || data >= 'a' && data <= 'z') { printf("Alphabet\n"); } return 0; } |
<実行結果>
N Alphabet 続行するには何かキーを押してください・・・
<実行結果>
j Alphabet 続行するには何かキーを押してください・・・
<実行結果>
* 続行するには何かキーを押してください・・・
「大文字」と「小文字」の両方をチェックすれば良いですね。
「文字」は様々なプログラムで利用されています。
パスワードなども「文字」の集合体です。
パスワードなどを決める時に、
「アルファベット」と「数字」の組み合わせで決めてください
などと表示されるケースがありますが、ユーザーが「アルファベット」や「数字」以外の記号を入力した場合を考えて、「文字」の範囲をチェックする訳です。
次回は、範囲チェック用の命令(関数)について説明します。