人工知性を作りたい

私が日々、挑戦したことや学んだことなどを紹介していく雑記ブログです。 (新しいAI技術HTM, 専門の音声信号処理, 趣味のアニメ等も書いてます。)

ローマ字判定! 文字同士の比較処理 【C言語】

f:id:hiro-htm877:20190601191549p:plain

 

f:id:hiro-htm877:20190601202549p:plain

 プログラミング初心者、学生

・入力してもらう文字をローマ字以外はじきたい!

・文字の比較ってどうやるの?

・ローマ字の判別がしたい!

 

そんな方の疑問に答えます。

 

コードが知りたい方は目次のソースコードへ飛んでください!

本記事のテーマ

【完全初心者向け】ローマ字判定!、C言語プログラミング!

C言語での文字の扱い

ASCiiコードとは

プログラミングでは数字しか扱えないため、一文字一文字に対応した数字が割り当てられている。

これらの割り当てられた表をASCiiコードと言います。

アスキーコード表については、ネットで検索してみてください。いっぱい出てきます。

ローマ字判定

アルゴリズム

入力した文字の判定

ここで、ASCiiコード表では'a'〜'z'と'A'〜'Z'はそれぞれ連続した数字で割り当てられている。

1. 'a'〜'z'との比較

2. 'A' 〜'Z'との比較

3. 1,2の条件内の場合ローマ字と判定する

 以上のアルゴリズムを元にC言語プログラミングを組んでいきます!

ローマ字判定、実装!

判定方法は、 

1. if ('a' <= input && input <= 'z') ←'a'かつ'z'

2. if ('A' <= input && input <= 'Z') ←'A'かつ'Z'

3. if (1 || 2) ←1または2

ローマ字判定コード

まず、文字同士の比較は比較演算子を用いることで比較できます。

C言語では、比較する際にint型に変換してから比較しているので、文字と数字の比較演算も行うことができます。

あとは、'a'以上'z'以下の範囲、'A'以上'Z'以下の範囲をorでどちらかの範囲に入っていればローマ字であると判定できます!

 if(('a' <= input && input <= 'z') || ('A' <= input && input <= 'Z')){
        printf("これはローマ字です。\n");
    }
    else{
        printf("これはローマ字ではありません。\n");
    } 
出力 

1文字を入力して下さい!

a

これはローマ字です。

1文字を入力して下さい!

z

これはローマ字です。

1文字を入力して下さい!

[

これはローマ字ではありません。

 

1文字を入力して下さい!

A

これはローマ字です。

1文字を入力して下さい!

Z

これはローマ字です。

完成です!

他の文字も色々試してみてください!

main文を含む全ソースコードは以下に示します。 

ソースコード

#include <stdio.h>
void enshu0605(void);

int main() {
    enshu0605();
    return 0;
}

void enshu0604(void){
    int i;
    for(i=0; i<99; i++){
        if(prime_number(i) == 0){
            printf("%3d", i);
        }
    }printf("\n");
}
void enshu0605(void){
    
    char input;
    printf("1文字を入力して下さい!\n");
    scanf("%c", &input);
    
    if(('a' <= input && input <= 'z') || ('A' <= input && input <= 'Z')){
        printf("これはローマ字です。\n");
    }
    else{
        printf("これはローマ字ではありません。\n");
    }
}