#include #include #include // ひらがなをカタカナに変換 wchar_t hiraganaToKatakana(wchar_t hiragana) { if (hiragana >= L'ぁ' && hiragana <= L'ん') { return hiragana + L'ァ' - L'ぁ'; } else { return hiragana; // 変換できない場合はそのまま返す } } // カタカナをひらがなに変換 wchar_t katakanaToHiragana(wchar_t katakana) { if (katakana >= L'ァ' && katakana <= L'ン') { return katakana - (L'ァ' - L'ぁ'); } else { return katakana; // 変換できない場合はそのまま返す } } // 全角を半角に変換 wchar_t zenkakuToHankaku(wchar_t zenkaku) { if (zenkaku >= L'0' && zenkaku <= L'9') { return zenkaku - L'0' + L'0'; } else if (zenkaku >= L'A' && zenkaku <= L'Z') { return zenkaku - L'A' + L'A'; } else if (zenkaku >= L'a' && zenkaku <= L'z') { return zenkaku - L'a' + L'a'; } else if (zenkaku == L' ') { return L' '; // 全角スペースを半角スペースに変換 } else { return zenkaku; // 変換できない場合はそのまま返す } } // 半角を全角に変換 wchar_t hankakuToZenkaku(wchar_t hankaku) { if (hankaku >= L' ' && hankaku <= L'~') { return hankaku + 0xFEE0; } else { return hankaku; // 変換できない場合はそのまま返す } } int main() { setlocale(LC_ALL, ""); // ロケールを設定してマルチバイト文字を扱えるようにする // ひらがなをカタカナに変換 wprintf(L"ひらがなをカタカナに変換: %lc\n", hiraganaToKatakana(L'ひ')); // カタカナをひらがなに変換 wprintf(L"カタカナをひらがなに変換: %lc\n", katakanaToHiragana(L'カ')); // 全角を半角に変換 wprintf(L"全角を半角に変換: %lc\n", zenkakuToHankaku(L'A')); // 半角を全角に変換 wprintf(L"半角を全角に変換: %lc\n", hankakuToZenkaku(L'A')); return 0; }