当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 setlocale()用法及代码示例



描述

C库函数char *setlocale(int category, const char *locale)设置或读取位置相关信息。

声明

以下是 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 或空字符串"",则locale 名称将根据与上述类别同名的环境变量的值进行设置。

返回值

对 setlocale() 的成功调用将返回与语言环境集对应的不透明字符串。如果无法满足请求,则返回值为 NULL。

示例

下面的例子展示了 setlocale() 函数的用法。

#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, "en_GB"));
   strftime(buffer,80,"%c", timer );
   printf("Date is:%s\n", buffer);

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

   return(0);
}

让我们编译并运行上面的程序,将产生以下结果 -

Locale is:en_GB                                                            
Date is:Fri 05 Dec 2014 10:35:02 UTC                                       
Locale is:de_DE                                                            
Date is:Fr 05 Dez 2014 10:35:02 UTC

相关用法


注:本文由纯净天空筛选整理自 C library function - setlocale()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。