C 庫 - wctrans() 函式



C 的wctranswctrans() 函式用於獲取 wctrans_t 型別的描述符 (desc)。此描述符可與“iswctype”函式一起使用,以檢查給定的寬字元是否屬於特定的字元類別。

此函式可以儲存以下“str”值:

  • toupper - 標識 towupper 使用的對映
  • tolower - 標識 towlower 使用的對映

語法

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

wctrans_t wctrans( const char* str )

引數

此函式接受一個引數:

  • str - 這是一個指向型別為“const char*”的字串的指標,該字串指定要獲取其描述符的字元類別的名稱。

返回值

此函式返回一個 wctrans_t 型別的物件,該物件可與towctrans()函式一起使用以對映寬字元。

示例 1

以下是用 C 編寫的基本程式,用於演示使用 wctrans() 獲取描述符。

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

int main() {
   // Wide character to check
   wchar_t wc = L'A';
   
   // Descriptor for lowercase characters
   wctrans_t desc = wctrans("tolower");

   wprintf(L"Original character: %lc\n", wc);

   if (iswctype(wc, wctype("upper"))) {
      wc = towctrans(wc, desc);
      wprintf(L"Lowercase: %lc\n", wc);
   } else {
      wprintf(L"Not an uppercase character.\n");
   }
   return 0;
}

輸出

以下是輸出:

Original character: A
Lowercase: a

示例 2

讓我們再建立一個示例,我們使用 wctrans() 函式獲取轉換描述符,然後使用“towctrans”將小寫字元轉換為大寫,反之亦然。

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

int main() {
   wchar_t string[] = L"tUTORIALSPOINT.COM";
   wprintf(L"Original string: %ls \n", string);

   wctype_t lower= wctype("lower");
   wctype_t upper = wctype("upper");

   for (int i = 0; i < wcslen(string); i++) {
      // if charcter is in lower transform to upper
      if (iswctype(string[i], lower))
         string[i] = towctrans(string[i], wctrans("toupper"));
          
      // if charcter is in upper transform to lower
      else if (iswctype(string[i], upper))
         string[i] = towctrans(string[i], wctrans("tolower"));
   }

   wprintf(L"After transformation: %ls", string);
   return 0;
}

輸出

以下是輸出:

Original string: tUTORIALSPOINT.COM 
After transformation: Tutorialspoint.com

示例 3

以下示例為“toupper”建立了一個描述符 (desc)。然後我們在 wctrans() 中使用此 desc 進行轉換為大寫。

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

int main() {
   // Wide character string to check
   wchar_t str[] = L"tutorialspoint";
   // Descriptor for uppercase characters
   wctrans_t desc = wctrans("toupper");

   // Loop through each character in the string
   for (size_t i = 0; str[i] != L'\0'; ++i) {
      // Check if the character is alphanumeric
      if (iswctype(str[i], wctype("lower"))) {
         str[i] = towctrans(str[i], desc);
         wprintf(L"%lc ", str[i]);
      } else {
         wprintf(L"Not converted to uppercase");
      }
   }
   return 0;
}

輸出

以下是輸出:

T U T O R I A L S P O I N T 
c_library_wctype_h.htm
廣告

© . All rights reserved.