コード:
#include <stdio.h>
#include <string.h>
#define KATAKANA 1
#define HIRAGANA 2
#define ZENKAKUEISUUZI 4
int hanbetu(const char* q) {
static const char* katakana[] = {
"ア", "イ", "ウ", "エ", "オ",
"カ", "キ", "ク", "ケ", "コ",
"サ", "シ", "ス", "セ", "ソ",
"タ", "チ", "ツ", "テ", "ト",
"ナ", "ニ", "ヌ", "ネ", "ノ",
"ハ", "ヒ", "フ", "ヘ", "ホ",
"マ", "ミ", "ム", "メ", "モ",
"ヤ", "ユ", "ヨ",
"ラ", "リ", "ル", "レ", "ロ",
"ワ", "ヰ", "ヱ", "ヲ", "ン",
"ガ", "ギ", "グ", "ゲ", "ゴ",
"ザ", "ジ", "ズ", "ゼ", "ゾ",
"ダ", "ヂ", "ヅ", "デ", "ド",
"バ", "ビ", "ブ", "ベ", "ボ",
"パ", "ピ", "プ", "ペ", "ポ",
"ァ", "ィ", "ゥ", "ェ", "ォ",
"ッ", "ヵ", "ヮ",
"ア", "イ", "ウ", "エ", "オ",
"カ", "キ", "ク", "ケ", "コ",
"サ", "シ", "ス", "セ", "ソ",
"タ", "チ", "ツ", "テ", "ト",
"ナ", "ニ", "ヌ", "ネ", "ノ",
"ハ", "ヒ", "フ", "ヘ", "ホ",
"マ", "ミ", "ム", "メ", "モ",
"ヤ", "ユ", "ヨ",
"ラ", "リ", "ル", "レ", "ロ",
"ワ", "イ", "エ", "ヲ", "ン",
NULL
};
static const char* hiragana[] = {
"あ", "い", "う", "え", "お",
"か", "き", "く", "け", "こ",
"さ", "し", "す", "せ", "そ",
"た", "ち", "つ", "て", "と",
"な", "に", "ぬ", "ね", "の",
"は", "ひ", "ふ", "へ", "ほ",
"ま", "み", "む", "め", "も",
"や", "ゆ", "よ",
"ら", "り", "る", "れ", "ろ",
"わ", "ゐ", "ゑ", "を", "ん",
"が", "ぎ", "ぐ", "げ", "ご",
"ざ", "じ", "ず", "ぜ", "ぞ",
"だ", "ぢ", "づ", "で", "ど",
"ば", "び", "ぶ", "べ", "ぼ",
"ぱ", "ぴ", "ぷ", "ぺ", "ぽ",
"ぁ", "ぃ", "ぅ", "ぇ", "ぉ",
"っ", NULL
};
static const char* zenkakueisuuzi[] = {
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", NULL
};
int res = 0;
const char **p;
for (p = katakana; *p != NULL; p++) {
if (strstr(q, *p) != NULL) {
res |= KATAKANA;
break;
}
}
for (p = hiragana; *p != NULL; p++) {
if (strstr(q, *p) != NULL) {
res |= HIRAGANA;
break;
}
}
for (p = zenkakueisuuzi; *p != NULL; p++) {
if (strstr(q, *p) != NULL) {
res |= ZENKAKUEISUUZI;
break;
}
}
return res;
}
int main(void) {
char input[128];
char *a;
int res;
if (scanf("%127s", input) != 1) return 1;
a = input;
res = hanbetu(a);
if (res & KATAKANA) puts("カタカナ");
if (res & HIRAGANA) puts("ひらがな");
if (res & ZENKAKUEISUUZI) puts("全角英数字");
return 0;
}