函数
<cwctype>

iswpunct

int iswpunct (wint_t c);
检查宽字符是否为标点字符
检查 c 是否为标点字符

标点字符是被特定区域设置视作标点符号的字符。这些字符具有图形表示(如 iswgraph 中所述),并且必须不是字母数字字符(如 iswalnum 中所述)。

此函数是 ispunct (<cctype>) 的宽字符版本:如果 c 通过 wctob 转换成的字符对于 ispunct 为真,则该字符总是被此函数视为标点字符(但某些区域设置特定的可打印空白字符可能除外,例如L' ').

之外的字符)。在 C++ 中,此函数的一个特定于区域设置的模板版本 (ispunct) 存在于头文件 <locale> 中,适用于所有字符类型。

参数

c
要检查的宽字符,强制转换为wint_t类型,或WEOF.
wint_t 是一个整数类型。

返回值

如果 c 确实是空白字符,则返回一个非零值(即)如果 c 确实是标点字符。否则返回零(即,)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* 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;
}

输出
The sentence contains 2 puntuation characters.


另见