setlocale()とか使ったこと無かったから知らんかったが、うっかりやってしまった。
_tsetlocale(LC_CTYPE, _T(""));
isalpha() の結果が setlocale() しなければ、 0x41〜0x5A と 0x61〜0x7A が 1 になり、
上のような setlocale() をしてると 0xA6-0xDF も 1 になるて。
isalnum()も同じで、英数字以外をアレする処理を書いてたのが誤動作しまくり。
setlocale()とか使ったこと無かったから知らんかったが、うっかりやってしまった。
_tsetlocale(LC_CTYPE, _T(""));
isalpha() の結果が setlocale() しなければ、 0x41〜0x5A と 0x61〜0x7A が 1 になり、
上のような setlocale() をしてると 0xA6-0xDF も 1 になるて。
isalnum()も同じで、英数字以外をアレする処理を書いてたのが誤動作しまくり。