C 库 - iswalnum() 函数

❮ C 标准库 - <wctype.h>


C wctype 库中的 iswalnum() 函数用于检查给定的宽字符(用 wint_t 表示)是否为字母数字字符,即当前语言环境特有的字母或数字。

此函数可用于字符验证、密码验证、字符串处理或标记化。

语法

以下是 iswalnum() 函数的 C 库语法 -

int iswalnum( wint_t ch )

参数

此函数接受一个参数 -

  • ch − 需要检查的是类型为"wint_t"的宽字符。

返回值

如果宽字符是字母数字字符,则此函数返回非零值,否则返回零。

示例 1

以下是演示 iswalnum() 函数用法的基本 C 语言示例。

#include <wctype.h>
#include <stdio.h>
int main() {
   wint_t ch = L'5'; 

   if (iswalnum(ch)) {
      printf("The wide character %lc is alphanumeric.
", ch);
   } else {
      printf("The wide character %lc is not alphanumeric.
", ch);
   }
   return 0;
}

输出

以下是输出 -

The wide character 5 is alphanumeric.

示例 2

我们创建一个 C 程序,使用 iswalnum() 函数来计算字母数字字符的数量。

#include <stdio.h>
#include <wctype.h>
#include <wchar.h>

int main() {
   // 定义一个混合字符的宽字符串
   wchar_t str[] = L"Tutorialspoint Inida 500081";
   int alnumCount = 0;
   
   // 遍历宽字符串中的每个字符
   for (int i = 0; str[i] != L'\0'; i++) {
      if (iswalnum(str[i])) {
         wprintf(L"%lc ", str[i]);
         alnumCount++;
      }
   }
   
   // 打印结果
   wprintf(L"
The wide string \"%ls\" contains %d alphanumeric character(s).
", str, alnumCount);
   
   return 0;
}

输出

以下是输出 -

T u t o r i a l s p o i n t I n i d a 5 0 0 0 8 1
The wide string "Tutorialspoint Inida 500081" contains 25 alphanumeric character(s).

示例 3

这里,我们检查所有宽字符,无论字母是否是字母数字。

#include <stdio.h>
#include <wctype.h>
#include <wchar.h>

int main() {
   wchar_t str[] = L"ab518";   
   for (int i = 0; str[i] != L'\0'; i++) {
       if (iswalnum(str[i])) {
           wprintf(L"The character '%lc' is an alphanumeric character.
", str[i]);
       } else {
           wprintf(L"The character '%lc' is not an alphanumeric character.
", str[i]);
       }
   }   
   return 0;
}

输出

以下是输出 -

The character 'a' is an alphanumeric character.
The character 'b' is an alphanumeric character.
The character '5' is an alphanumeric character.
The character '1' is an alphanumeric character.
The character '8' is an alphanumeric character.

❮ C 标准库 - <wctype.h>