#include <cwchar>
wchar_t valid_chars[] = {
L'0', L'1', L'2', L'3', L'4', L'5', L'6', L'7', L'8', L'9',
L'a', L'b', L'c', L'd', L'e', L'f',
L'A', L'B', L'C', L'D', L'E', L'F',
0x0008, 0x007f, // backspace, del
0x0000
};
UINT len = GetDlgItemText(hwnd, IDC_EDT_HEX, buf, 80);
for (UINT i = 0; i < len; ++i)
{
if (std::wcschr(valid_chars, buf[i]))
// is valid
else
// is not valid
}
或者:
#include <algorithm>
wchar_t valid_chars[] = {
L'0', L'1', L'2', L'3', L'4', L'5', L'6', L'7', L'8', L'9',
L'a', L'b', L'c', L'd', L'e', L'f',
L'A', L'B', L'C', L'D', L'E', L'F',
0x0008, 0x007f // backspace, del
};
wchar_t *valid_chars_end = &valid_chars[24];
UINT len = GetDlgItemText(hwnd, IDC_EDT_HEX, buf, 80);
for (UINT i = 0; i < len; ++i)
{
if (std::find(valid_chars, valid_chars_end, buf[i]) != valid_chars_end)
// is valid
else
// is not valid
}