C 参考手册

检查给定的宽字符是否空白符,即空格( 0x20 )、换页符( 0x0c )、换行符( 0x0a )、回车( 0x0d )、水平制表符( 0x09 )、垂直制表符( 0x0b )或任何当前本地环境指定的空白符之一。

参数

ch - 宽字符

返回值

若宽字符为空白符则为非零值,否则为零。

注意

ISO 30112 定义 POSIX 空格符为 Unicode 字符 U+0009..U+000D 、 U+0020 、 U+1680 、 U+180E 、 U+2000..U+2006 、 U+2008..U+200A 、 U+2028 、 U+2029 、 U+205F 及 U+3000 。

示例

#include <stdio.h>
#include <wchar.h>
#include <wctype.h>
#include <locale.h>
 
int main(void)
{
    wchar_t c = L'\u2003'; // Unicode 字符 'EM SPACE'
    printf("in the default locale, iswspace(%#x) = %d\n", c, !!iswspace(c));
    setlocale(LC_ALL, "en_US.utf8");
    printf("in Unicode locale, iswspace(%#x) = %d\n", c, !!iswspace(c));
}

输出:

in the default locale, iswspace(0x2003) = 0
in Unicode locale, iswspace(0x2003) = 1

引用

  • C11 standard (ISO/IEC 9899:2011):
  • 7.30.2.1.10 The iswspace function (p: 450-451)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.25.2.1.10 The iswspace function (p: 396-397)

参阅

检查一个字符是否是空白字符
(函数)
ASCII值
(十六进制)
字符

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

0 - 8 0x00-0x08 控制码 (NUL等) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 0x09 制表符 (\t) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10 - 13 0x0A-0x0D 空白符 (\n, \v, \f, \r) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14 - 31 0x0E-0x1F 控制码 ≠0 0 0 0 0 0 0 0 0 0 0 0
32 0x20 空格 0 ≠0 ≠0 ≠0 0 0 0 0 0 0 0 0
33 - 47 0x21-0x2F !"#$%&'()*+,-./ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
48 - 57 0x30-0x39 0123456789 0 ≠0 0 0 ≠0 0 ≠0 0 0 0 ≠0 ≠0
58 - 64 0x3a-0x40 :;<=>?@ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
65 - 70 0x41-0x46 ABCDEF 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 ≠0
71 - 90 0x47-0x5A GHIJKLMNOPQRSTUVWXYZ 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 0
91 - 96 0x5B-0x60 [\]^_` 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
97 -102 0x61-0x66 abcdef 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 ≠0
103-122 0x67-0x7A ghijklmnopqrstuvwxyz 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 0
123-126 0x7B-0x7E {|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 0x7F 退格符 (DEL) ≠0 0 0 0 0 0 0 0 0 0 0 0