プログラミング初心者、学生
・入力してもらう文字をローマ字以外はじきたい!
・文字の比較ってどうやるの?
・ローマ字の判別がしたい!
そんな方の疑問に答えます。
コードが知りたい方は目次のソースコードへ飛んでください!
本記事のテーマ
【完全初心者向け】ローマ字判定!、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");
}
}