2008年7月19日 星期六

英數全形轉半形的做法

近日在寫程式時,為了人性化與避免程式出錯,對於用戶輸入的字符要求自動的將英數與符號字符做全形與半形的轉換。在做了幾個簡單的實驗發現所有 ASCII 的可見字元 - 自 0x21-0x7E,只要將其加上 0xFEE0 就是全形的字。

所以全形轉半形就簡單啦! 只要:

UINT transform(const wchar_t ch)
{
if ((ch >= 0xFF01) && (ch <= 0xFF5E))
return ch - 0xFEE0;
else
return 0;
}