📅  最后修改于: 2023-12-03 14:59:45.067000             🧑  作者: Mango
C++ iswxdigit() 是一个用来判断字符是否为十六进制数字的函数。该函数是 C++ 标准库 <cwctype>
头文件(或 <cctype>
)里的函数,所以使用前需要包含这个头文件。
以下是 C++ iswxdigit() 函数的原型:
#include <cwctype>
wint_t iswxdigit(wint_t wc);
iswxdigit()
函数的参数 wc
是一个被映射到宽字符的字符,使用 wchar_t
类型。
如果字符是十六进制数字,则函数返回非零值(true),否则返回零(false)。
以下是一个示例程序:
#include <iostream>
#include <cwctype>
#include <locale>
int main() {
std::locale loc("");
std::wcout.imbue(loc);
std::wstring str1 = L"ABCDEF123GHI";
for (auto wc : str1) {
if (iswxdigit(wc))
std::wcout << L"是十六进制数字: " << wc << std::endl;
else
std::wcout << L"不是十六进制数字: " << wc << std::endl;
}
return 0;
}
输出如下:
是十六进制数字: A
是十六进制数字: B
是十六进制数字: C
是十六进制数字: D
是十六进制数字: E
是十六进制数字: F
是十六进制数字: 1
是十六进制数字: 2
是十六进制数字: 3
不是十六进制数字: G
不是十六进制数字: H
不是十六进制数字: I
iswxdigit()
函数前,需要包含 <cwctype>
头文件(或 <cctype>
)。iswxdigit()
函数对于 ASCII 码以外的字符可能返回意外的结果,因为这个函数并不支持所有 Unicode 字符。iswxdigit()
函数前,需要设置本地环境,以保证函数能够正确地读入宽字符。在上面的示例中,我们使用了 std::locale
来设置本地化环境。