- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
C 库 - iswpunct() 函数
C 的wctype库 iswpunct() 函数用于检查给定的宽字符(类型为 wint_t)是否为标点符号字符。
标点符号字符是指那些不是字母数字字符且不是空白字符的字符。它包括 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 中的任何一个字符,或当前区域设置特有的任何标点符号字符。
语法
以下是 iswpunct() 函数的 C 库语法 -
int iswpunct( wint_t ch );
参数
此函数接受一个参数 -
-
ch - 它是要检查的类型为 'wint_t' 的宽字符。
返回值
如果宽字符是标点符号字符,则此函数返回非零值,否则返回零。
示例 1
以下是用 iswpunct() 的基本 C 程序示例。
#include <wctype.h>
#include <wchar.h>
#include <stdio.h>
int main() {
wchar_t wc = L'!';
if (iswpunct(wc)) {
wprintf(L"'%lc' is a punctuation character.\n", wc);
} else {
wprintf(L"'%lc' is not a punctuation character.\n", wc);
}
return 0;
}
输出
以下是输出 -
'!' is a punctuation character.
示例 2
让我们创建另一个 C 示例,并使用 iswpunct() 来识别数组中的每个字符是否为标点符号字符。
#include <locale.h>
#include <stdio.h>
#include <wchar.h>
#include <wctype.h>
int main(void) {
// "en_US.utf8" to handle Unicode characters
setlocale(LC_ALL, "en_US.utf8");
// Array of wide characters
wchar_t wc[] = {L'!', L'"', L'A', L';'};
size_t size = sizeof(wc) / sizeof(wc[0]);
// Check and print if a character is punctuation character or not
for (size_t i = 0; i < size; ++i) {
wchar_t ch = wc[i];
printf("Character '%lc' (%#x) is %s punctuation char\n", ch, ch, iswpunct(ch) ? "a" : "not a");
}
return 0;
}
输出
以下是输出 -
Character '!' (0x21) is a punctuation char Character '"' (0x22) is a punctuation char Character 'A' (0x41) is not a punctuation char Character ';' (0x3b) is a punctuation char
示例 3
此示例检查默认区域设置中的标点符号字符。
#include <locale.h>
#include <stdio.h>
#include <wchar.h>
#include <wctype.h>
int main(void) {
// defualt locale
setlocale(LC_ALL, "");
// Array of wide characters
wchar_t wc[] = {L'!', L'"', L'A', L';', L'*'};
size_t size = sizeof(wc) / sizeof(wc[0]);
// Check and print if a character is punctuation character or not
printf("Checking punctuation characters:\n");
for (size_t i = 0; i < size; ++i) {
wchar_t ch = wc[i];
printf("Character '%lc' (%#x) is %s punctuation char\n", ch, ch, iswpunct(ch) ? "a" : "not a");
}
return 0;
}
输出
以下是输出 -
Checking punctuation characters: Character '!' (0x21) is a punctuation char Character '"' (0x22) is a punctuation char Character 'A' (0x41) is not a punctuation char Character ';' (0x3b) is a punctuation char Character '*' (0x2a) is a punctuation char
c_library_wctype_h.htm
广告