C 语言库函数 - setlocale()

返回上一级

C 语言标准库函数 char setlocale(int category, const char locale) 用于设置或读取地域化信息

头文件

#include <locale.h>

函数原型

下面是 setlocale() 函数的原型

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

参数

  • category: 这是一个已命名的常量,指定了受区域设置影响的函数类别 LC_ALL 包括下面的所有选项:

    • LC_COLLATE 字符串比较。参见 strcoll()
    • LC_CTYPE 字符分类和转换。例如 strtoupper()
    • LC_MONETARY 货币格式,针对 localeconv()。
    • LC_NUMERIC 小数点分隔符,针对 localeconv()
    • LC_TIME 日期和时间格式,针对 strftime()
    • LC_MESSAGES 系统响应
  • locale:如果 locale 是 NULL 或空字符串 "",则区域名称将根据环境变量值来设置 其名称与上述的类别名称相同。

返回值

如果成功调用 setlocale(),则返回一个对应于区域设置的不透明的字符串 如果请求无效,则返回值是 NULL

范例

下面的范例演示了 setlocale() 函数的用法

/**
 * file: main.c
 * author: 简单教程(www.twle.cn)
 *
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
 */

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

int main ()
{
   time_t currtime;
   struct tm *timer;
   char buffer[80];

   time( &currtime );
   timer = localtime( &currtime );

   printf("Locale is: %s\n", setlocale(LC_ALL, "zh_CN"));
   strftime(buffer,80,"%c", timer );
   printf("Date is: %s\n", buffer);


   printf("Locale is: %s\n", setlocale(LC_ALL, "en_US"));
   strftime(buffer,80,"%c", timer );
   printf("Date is: %s\n", buffer);

   return(0);
}

编译运行范例,输出结果如下

$ gcc main.c && ./a.out
Locale is: zh_CN
Date is: 三  9/27 22:24:07 2017
Locale is: en_US
Date is: Wed Sep 27 22:24:07 2017

返回上一级

C 语言标准库

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.