C 庫 - iswpunct() 函式



C 的wctypeiswpunct() 函式用於檢查給定的寬字元(型別為 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
廣告