★文字と文字列(文字3)★


今回は「文字」の範囲チェックについて書きます。


文字コード表」の「アルファベット大文字」を見てください。

'A'は「10進数」で65、'Z'は「10進数」で90ですよね。

'A'から'Z'までの間、ずっと連続した数値が続いています。

これを元に以下のプログラムを作ってみてください。

・入力された文字がアルファベットの大文字かどうか調べ、大文字であれば「Uppercase」と表示させます。









































解答例です。


<sample program 079-01>

#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
続行するには何かキーを押してください・・・

<実行結果>

*
続行するには何かキーを押してください・・・

「大文字」と「小文字」の両方をチェックすれば良いですね。


「文字」は様々なプログラムで利用されています。

パスワードなども「文字」の集合体です。

パスワードなどを決める時に、

 「アルファベット」と「数字」の組み合わせで決めてください

などと表示されるケースがありますが、ユーザーが「アルファベット」や「数字」以外の記号を入力した場合を考えて、「文字」の範囲をチェックする訳です。


次回は、範囲チェック用の命令(関数)について説明します。


次へ

戻る

目次へ