首页 技术 正文
技术 2022年11月10日
0 收藏 892 点赞 3,793 浏览 1544 个字

  locale.h 区域设置相关,主要针对时间日期、货币格式、字符控制、数字格式等以满足某区域的设置需要。
  locale设置类别主要包括以下几个宏定义的类别:
    LC_ALL:设置所有的类别;
    LC_COLLATE:设置控制整理顺序;
    LC_CTYPE:设置字符分类;
    LC_MONETARY:设置货币的格式;
    LC_NUMERIC:设置数字格式,如小数点后位数;
    LC_TIME:设置时间日期格式;
  某些C标准库实现还提供了其他类型的设置类别扩展,如glibc实现约有12种类型;不过除以上类别外的其他类别在移植性方面可能会有影响。
  其他的如:
    LC_MESSAGES:信息提示、错误信息、状态信息、标题、标签、按钮和菜单等信息类别;
    LC_PAPER:纸张尺寸大小类别;
    LC_NAME:名称书写类别;
    LC_ADDRESS:地址书写类别;
    LC_TELEPHONE:电话号码类别;
    LC_MEASUREMENT:度量测量方式类别;
    LC_IDENTIFICATION:locale自身信息类别;
  此外在设置类别是存在一定的优先级别,即一般满足LC_ALL > LC_* >LANG;也即是前者会覆盖后者的设置,各个类别会影响相应类别的相关函数行为,如mbstowcs、strftime等。

  两个比较重要的函数,setlocale、localeconv分别为设置某类别的区域本地化信息并返回相应设置的地域化信息、获取当前设置的区域格式。
  char *setlocale( int category, const char *locale ):category即为类别,locale为设置区域信息,如”CHS”,”C”,””,”US“,等;一般可根据需要设置区域信息,不过若需要
还原时一般针对某种类别或所有的设置使用“C”即可使用默认的C编译环境,“”则使用本地区域的环境。
  struct lconv * localeconv(void):返回值为一个结构,各主要成员参数分别为:
    decimal_point:小数点;
    thousands_sep:千位数分隔符;
    grouping:分组,如3时,则为1 000 000 000的格式分组;
    int_curr_symbol:当前货币符号前置标识,如CNY,USD等;
    currency_symbol:当前货币符号标识,如¥、$等;
    mon_decimal_point:货币小数点;
    mon_thousands_sep:货币千位数分隔符;
    mon_grouping:货币分组;
    positive_sign:正值符号标识;
    negative_sign:负值符号标识;
    int_frac_digits:国际货币小数数字;
    frac_digits:货币小数数字;
    p_cs_precedes、p_sep_by_space、n_cs_precedes、n_sep_by_space、p_sign_posn、n_sign_posn:则为0或者1的值,主要用以表明符号所处的位置。
  glibc以及微软的lconv结构还有其他的成员参数,同样的这些成员也可能会有移植性问题;
  除了以上两个函数外glibc还提供了newlocale、duplocale、freelocale、uselocale区域设置的接口函数;微软的也提供了_create_locale、_free_locale、_get_current_locale、
_configthreadlocale区域设置接口,所有的以上这些接口可能都会影响可移植性。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,493
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,133
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,297