C 庫 - iswxdigit() 函式



C 的wctype庫的iswxdigit()函式用於檢查給定的寬字元(由wint_t表示)是否對應(如果縮窄)於十六進位制數字字元,即“0123456789ABCDEF”中的一個。

此函式可用於輸入驗證、解析十六進位制數字、資料清理或語法高亮。

“iswdigit”和“iswxdigit”是僅有的兩個不受當前安裝的C語言區域設定影響的標準寬字元函式。

語法

以下是iswxdigit()函式的C庫語法:

int iswxdigit( wint_t ch )

引數

此函式接受一個引數:

  • ch - 它是要檢查的型別為'wint_t'的寬字元。

返回值

如果寬字元是十六進位制數字字元,則此函式返回非零值,否則返回零。

示例 1

以下是演示iswxdigit()函式用法的基本c示例。

#include <wctype.h>
#include <stddef.h>
#include <wchar.h>
int main()
{
   wchar_t ch = L'F';
   if (iswxdigit(ch)) {
      // The character is a valid hexadecimal digit (0-9, a-f, A-F)
      wprintf(L"%lc is a valid hexadecimal digit.\n", ch);
   } else {
      wprintf(L"%lc is not a valid hexadecimal digit.\n", ch);
   }
}

輸出

以下是輸出:

F is a valid hexadecimal digit.

示例 2

我們建立一個c程式,並使用iswxdigit()來檢查十六進位制數字字元是否有效。

#include <wctype.h>
#include <stddef.h>
#include <wchar.h>
int main()
{
   const wchar_t *hexString = L"3A4f";
   while (*hexString) {
      if (!iswxdigit(*hexString)) {
         wprintf(L"Invalid hexadecimal string.\n");
         return 1;
      }
      hexString++;
   }
   wprintf(L"Valid hexadecimal string.\n");
}

輸出

以下是輸出:

Valid hexadecimal string.

示例 3

讓我們再建立一個c程式,從使用者輸入或資料流中過濾掉非十六進位制字元。

#include <wctype.h>
#include <stddef.h>
#include <wchar.h>
int main() {
   const wchar_t *input = L"123GHI456";
   wchar_t sanitized[100];
   int j = 0;
   
   for (int i = 0; input[i] != L'\0'; i++) {
     if (iswxdigit(input[i])) {
       sanitized[j++] = input[i];
     }
   }
   sanitized[j] = L'\0';
   wprintf(L"Sanitized hexadecimal string: %ls\n", sanitized);
}

輸出

以下是輸出:

Sanitized hexadecimal string: 123456
c_library_wctype_h.htm
廣告