当前位置: C语言 -- 标准库 -- <wctype.h> -- wctrans

wctrans函数


概要:
#include <wctype.h>
wctrans_t wctrans(const char *property);

描述:

该函数构造一个wctrans_t类型的值,该值描述了由字符串参数property表示的宽字符间映射。

所有语言环境中字符串"tolower""toupper"都可以用作wctrans函数的property参数。


参数:
const char *property

表示宽字符间映射关系的字符串,例如:"tolower""toupper"


返回值:

根据当前语言环境的LC_CTYPE类别,如果参数property表示有效的宽字符间映射,函数返回非0值,该值可用作towctrans函数的第二个参数;否则函数返回0


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
/*函数wctrans范例*/

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

void func(const char *property, const wchar_t *wStr)
{
    wctrans_t desc;
    
    if(desc = wctrans(property))
    {
        wprintf(L"%s是有效的宽字符映射值。\n", property);
        wprintf(L"转换后的宽字符串:");
        
        int i = 0;

        while(wStr[i])
        {
            putwchar(towctrans(wStr[i++], desc));
        }
        putwchar(L'\n');
    }
    else
        wprintf(L"%s不是有效的宽字符映射值。\n", property);
}

int main(void)
{
    setlocale(LC_ALL, "");

    const wchar_t wStr[] = L"中国(China)";
    const char *propertyOne = "TOUPPER";
    const char *propertyTwo = "toupper";

    func(propertyOne, wStr);
    func(propertyTwo, wStr);

    return 0;
}

输出:

TOUPPER不是有效的宽字符映射值。

toupper是有效的宽字符映射值。

转换后的宽字符串:中国(CHINA)

注:使用ideone编译。


相关内容:
towctrans 映射宽字符的函数。