半角カタカナを全角カタカナに変換する
#include <tchar.h> #include <iostream> #include <string> #include <algorithm> #include <windows.h> /* 半角カタカナを全角カタカナに変換する */ std::wstring WStringKanaToAll ( std::wstring oString ) { std::wstring::iterator ite = oString.begin(); std::wstring::iterator iteEnd = oString.end(); while( ite != iteEnd ) { if ( ( L'ァ' <= *ite ) && ( L'ォ' >= *ite ) ) { *ite = L'ァ' + ( *ite - L'ァ' ) * 2; } else if ( ( L'ャ' <= *ite ) && ( L'ョ' >= *ite ) ) { *ite = L'ャ' + ( *ite - L'ャ' ) * 2; } else if ( ( L'ア' <= *ite ) && ( L'オ' >= *ite ) ) { *ite = L'ア' + ( *ite - L'ア' ) * 2; } else if ( ( L'カ' <= *ite ) && ( L'コ' >= *ite ) ) { *ite = L'カ' + ( *ite - L'カ' ) * 2; } else if ( ( L'サ' <= *ite ) && ( L'ソ' >= *ite ) ) { *ite = L'サ' + ( *ite - L'サ' ) * 2; } else if ( L'タ' == *ite ) { *ite = L'タ'; } else if ( L'チ' == *ite ) { *ite = L'チ'; } else if ( ( L'ツ' <= *ite ) && ( L'ト' >= *ite ) ) { *ite = L'ツ' + ( *ite - L'ツ' ) * 2; } else if ( ( L'ナ' <= *ite ) && ( L'ノ' >= *ite ) ) { *ite = L'ナ' + ( *ite - L'ナ' ); } else if ( L'ー' == *ite ) { *ite = L'ー'; } else if ( L'ハ' == *ite ) { *ite = L'ハ'; } else if ( L'ヒ' == *ite ) { *ite = L'ヒ'; } else if ( L'フ' == *ite ) { *ite = L'フ'; } else if ( L'ヘ' == *ite ) { *ite = L'ヘ'; } else if ( L'ホ' == *ite ) { *ite = L'ホ'; } else if ( ( L'マ' <= *ite ) && ( L'モ' >= *ite ) ) { *ite = L'マ' + ( *ite - L'マ' ); } else if ( ( L'ヤ' <= *ite ) && ( L'ヨ' >= *ite ) ) { *ite = L'ヤ' + ( *ite - L'ヤ' ) * 2; } else if ( ( L'ラ' <= *ite ) && ( L'ロ' >= *ite ) ) { *ite = L'ラ' + ( *ite - L'ラ' ); } else if ( L'ワ' == *ite ) { *ite = L'ワ'; } else if ( L'ヲ' == *ite ) { *ite = L'ヲ'; } else if ( L'ン' == *ite ) { *ite = L'ン'; } else if ( L'゙' == *ite ) { *ite = L'゛'; } else if ( L'゚' == *ite ) { *ite = L'゜'; } // 次の文字へ ite++; } // 正常終了 return( oString ); } /* 半角カタカナを全角カタカナに変換する */ int _tmain ( int argc , _TCHAR* argv[] ) { // 標準出力へユニコードを出力する setlocale( LC_ALL, "Japanese" ); // 半角カタカナを全角カタカナに変換する std::wstring oResultStr = WStringKanaToAll( L"アイウエオ" ); // 結果を表示 std::wcout << oResultStr.c_str() << std::endl; // 正常終了 return( 0 ); }
アイウエオ