C++官网参考链接:https://cplusplus.com/reference/cwctype/iswpunct/
函数
<cwctype>
iswpunct
int iswpunct (wint_t c);
检查宽字符是否是标点符号字符
检查c是否为标点符号字符。
标点字符是被特定语言环境视为标点符号的字符。这些字符具有图形表示(如iswgraph返回真的宽字符),但必须是非字母数字(如iswalnum返回真的宽字符)。
此函数是ispunct(<cctype>)的宽字符等效形式:如果c与wctob一起转换为ispunct为真的字符,则此函数始终将其视为标点字符(除了 L' ' 以外的某些特定于语言环境的可打印(printable)空白字符(white-space)可能除外)。
在C++中,对于所有字符类型,此函数(ispunct)的特定于语言环境的模板版本存在于头文件<locale>中。
形参
c
要检查的宽字符,转换为一个wint_t或WEOF。
wint_t是一个整型类型。
返回值
如果c确实是一个标点符号字符,则不同于0(即true)的值。否则为0(即为false)。
用例
/* iswpunct example */
#include <stdio.h>
#include <wctype.h>
int main ()
{
int i=0;
int cx=0;
wchar_t str[] = L"Hello, welcome!";
while (str[i])
{
if (iswpunct(str[i])) cx++;
i++;
}
wprintf (L"The sentence contains %d punctuation characters.\n", cx);
return 0;
}
输出: