• 头文件<locale.h>


    头文件<locale.h>定义了特定地域的设置,如日期格式和货币符号。

    <locale.h>中声明了两个函数和一个类型,并且定义了一些宏。

    1、宏:

    LC_ALL  设置下面的所有选项。

    LC_COLLATE  影响 strcoll 和 strxfrm 函数。

    LC_CTYPE  影响所有字符函数

    LC_MONETARY  影响 localeconv 函数提供的货币信息。

    LC_NUMERIC  影响 localeconv 函数提供的小数点格式化和信息。

    LC_TIME  影响 strftime 函数。

    2、结构:

    struct lconv {
    char *decimal_point;  //用于非货币值的小数点字符。
    char *thousands_sep;  //用于非货币值的千位分隔符。
    char *grouping;   //表示非货币量中每组数字大小的字符串。值为 0 意味着前一个值将应用于剩余的分组。
    char *int_curr_symbol;  //国际货币符号使用的字符串。
    char *currency_symbol;  //用于货币的本地符号。
    char *mon_decimal_point;  //用于货币值的小数点字符。
    char *mon_thousands_sep;  //用于货币值的千位分隔符。
    char *mon_grouping;    //表示货币值中每组数字大小的字符串。
    char *positive_sign;    //用于正货币值的字符。
    char *negative_sign;    //用于负货币值的字符。
    char int_frac_digits;    //国际货币值中小数点后要显示的位数。
    char frac_digits;    //货币值中小数点后要显示的位数。
    char p_cs_precedes;    //如果等于 1,则 currency_symbol 出现在正货币值之前。如果等于 0,则 currency_symbol 出现在正货币值之后。
    char p_sep_by_space;    //如果等于 1,则 currency_symbol 和正货币值之间使用空格分隔。如果等于 0,则 currency_symbol 和正货币值之间不使用空格分隔。
    char n_cs_precedes;    //如果等于 1,则 currency_symbol 出现在负货币值之前。如果等于 0,则 currency_symbol 出现在负货币值之后。
    char n_sep_by_space;    //如果等于 1,则 currency_symbol 和负货币值之间使用空格分隔。如果等于 0,则 currency_symbol 和负货币值之间不使用空格分隔。
    char p_sign_posn;    //表示正货币值中正号的位置。
    char n_sign_posn;    //表示负货币值中负号的位置。
    } ;

    3、函数:

    3.1函数setlocale被用来修改或查询程序当前的整个区域设置或者其中的一部分

    char * setlocale(int category,const char *locale);

    参数:category为LC_ALL,LC_COLLATE等。locale若是空字符串 "",则会使用系统环境变量的 locale 。若 locale 为零(NULL),则不会改变地域化配置,返回当前的地域值,若系统尚未实作则返回 false。

    返回值:成功,返回相应设置的地域化信息。字符串可能分配在静态存储区。失败,返回NULL

    3.2函数localeconv获得包含本地数字及货币信息格式的数组

    struct lconv *localeconv(void);

    功能:返回当前地域设置的信息

    返回值:返回一个指向struct lconv 类型结构体的指针。

    例:

    #include <stdio.h>
    #include <locale.h>

    void main()
    {
    struct lconv *lv;
    setlocale(LC_MONETARY,"en_GB");
    lv=localeconv();
    printf("Int_Curr_Symbol:%s ",lv->int_curr_symbol);
    printf("Currency_Symbol:%s ",lv->currency_symbol);
    printf("Point:%s ",lv->decimal_point);
    }

    结果:

    Int_Curr_Symbol:GBP
    Currency_Symbol:▒
    Point:.

  • 相关阅读:
    ES6的模块化历史
    javaee笔记之web.xml文件内的标签到底什么意思
    iTOP4412设备驱动学习五--地址和存储的概念
    iTOP4412设备驱动学习四--嵌入式硬件研发流程PCB和原理图的查看
    iTOP4412设备驱动学习三--设备节点的生成和调用:杂项设备驱动的注册和调用
    iTOP4412设备驱动学习二--在module中注册设备
    iTOP4412设备驱动学习一--设备和驱动的注册
    Linux下阅读源代码工具安装
    结构体
    综合实例:个人银行账户管理程序
  • 原文地址:https://www.cnblogs.com/Mr-Wenyan/p/7218155.html
Copyright © 2020-2023  润新知