【C言語】アスキーコード同士で比較する方法

この記事では、C言語においてアスキーコードを使って文字同士や数値と文字の比較、大文字と小文字の比較を行う方法を解説します。

アスキーコードを利用することで、プログラム内で文字や数値の大小や関係を簡単に判定することができます。

目次から探す

アスキーコードの比較方法

C言語では、文字や数値のアスキーコード同士を比較することができます。

アスキーコードは、文字や記号に対応する数値のことであり、それぞれの文字や記号には固有のアスキーコードが割り当てられています。

文字同士の比較

文字同士の比較は、そのままアスキーコード同士を比較することができます。

例えば、以下のようなコードを考えてみましょう。

#include <stdio.h>
int main() {
    char c1 = 'A';
    char c2 = 'B';
    if (c1 < c2) {
        printf("c1はc2よりも前の文字です\n");
    } else if (c1 > c2) {
        printf("c1はc2よりも後の文字です\n");
    } else {
        printf("c1とc2は同じ文字です\n");
    }
    return 0;
}

このコードでは、変数c1c2にそれぞれ文字’A’と’B’を代入し、それらのアスキーコードを比較しています。

実行すると、c1はc2よりも前の文字ですという結果が表示されます。

数値と文字の比較

C言語では、数値と文字のアスキーコードを比較することもできます。

数値と文字の比較では、数値を文字に変換してから比較する必要があります。

以下に例を示します。

#include <stdio.h>
int main() {
    int num = 65;
    char c = 'A';
    if (num == c) {
        printf("numとcは同じ文字です\n");
    } else {
        printf("numとcは異なる文字です\n");
    }
    return 0;
}

このコードでは、変数numに数値65を代入し、変数cに文字’A’を代入しています。

numcを比較すると、同じ文字であることがわかります。

大文字と小文字の比較

C言語では、大文字と小文字のアスキーコードは異なるため、直接比較することはできません。

しかし、大文字と小文字の関係を比較するためには、いくつかの方法があります。

  1. 大文字を小文字に変換してから比較する方法
  2. 大文字と小文字のアスキーコードの差を利用する方法

以下に、それぞれの方法の例を示します。

#include <stdio.h>
int main() {
    char upper = 'A';
    char lower = 'a';
    // 方法1: 大文字を小文字に変換してから比較
    if (upper + 32 == lower) {
        printf("upperとlowerは同じ文字です\n");
    } else {
        printf("upperとlowerは異なる文字です\n");
    }
    // 方法2: アスキーコードの差を利用して比較
    if (upper - lower == 32) {
        printf("upperとlowerは同じ文字です\n");
    } else {
        printf("upperとlowerは異なる文字です\n");
    }
    return 0;
}

このコードでは、変数upperに大文字’A’を、変数lowerに小文字’a’を代入しています。

どちらの方法でも、upperlowerは同じ文字であることがわかります。

以上が、C言語におけるアスキーコード同士の比較方法についてです。

目次から探す