全角アルファベットを半角アルファベットへ変換します。
#include <tchar.h> #include <iostream> #include <string> #include <algorithm> #include <windows.h> /* 全角アルファベットを半角アルファベットへ変換する */ std::wstring WStringToHalf ( std::wstring oString ) { std::wstring::iterator ite = oString.begin(); std::wstring::iterator iteEnd = oString.end(); while( ite != iteEnd ) { /* 'a~z'なら'a~z'に変換する */ if ( ( L'a' <= *ite ) && ( L'z' >= *ite ) ) { *ite += ( L'a' - L'a' ); } /* 'A~Z'なら'A~Z'に変換する */ else if ( ( L'A' <= *ite ) && ( L'Z' >= *ite ) ) { *ite += ( L'A' - L'A' ); } // 次の文字へ ite++; } // 正常終了 return( oString ); } /* 全角アルファベットを半角アルファベットへ変換する */ int _tmain ( int argc , _TCHAR* argv[] ) { // 標準出力へユニコードを出力する setlocale( LC_ALL, "Japanese" ); // 全角アルファベットを半角アルファベットへ変換する std::wstring oResultStr = WStringToHalf( L"ABCDEFGabcdefg" ); // 結果を表示 std::wcout << oResultStr.c_str() << std::endl; // 正常終了 return( 0 ); }
ABCDEFGabcdefg