确定整数是否表示标点字符。
语法
int ispunct(
int c
);
int iswpunct(
wint_t c
);
int _ispunct_l(
int c,
_locale_t locale
);
int _iswpunct_l(
wint_t c,
_locale_t locale
);
参数
c
要测试的整数。
locale
要使用的区域设置。
返回值
如果 c
是标点字符的特定表示形式,则每个例程将返回非零值。 如果任何可打印字符不是空格字符也不是 isalnum
为非零值的字符,则 ispunct
返回一个非零值。 如果任何可打印宽字符不是空格宽字符也不是 iswalnum
为非零值的宽字符,则 iswpunct
返回一个非零值。 如果 c
不满足测试条件,则这些例程都返回 0。
ispunct
函数的测试条件的结果取决于区域设置的 LC_CTYPE
类别设置。 有关详细信息,请参阅 setlocale
、 _wsetlocale
。 这些不带 _l
后缀的函数的版本将当前区域设置用于任何依赖于区域设置的行为;带有 _l
后缀的版本与之相同,只不过它们改用传入的区域设置。 有关详细信息,请参阅 Locale。
如果 c
不是 EOF 或在范围 0 到 0xFF 内(包含 0 和 0xFF),则 ispunct
和 _ispunct_l
的行为没有定义。 当使用调试 CRT 库并且 c
不是这些值中的一个时,函数将引发断言。
一般文本例程映射
TCHAR.H 例程 | _UNICODE 和 _MBCS 未定义 |
_MBCS 已定义 |
_UNICODE 已定义 |
---|---|---|---|
_istpunct |
ispunct |
_ismbcpunct |
iswpunct |
备注
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
要求
例程 | 必需的标头 |
---|---|
ispunct |
<ctype.h> |
iswpunct |
<ctype.h> 或 <wchar.h> |
_ispunct_l |
<ctype.h> |
_iswpunct_l |
<ctype.h> 或 <wchar.h> |
有关兼容性的详细信息,请参阅 兼容性。