位置:首页 > 高级语言 > C语言标准库 > setlocale() - C函数

setlocale() - C函数

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

声明

以下是声明的setLocale() 函数。

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

参数

  • category -- 这是已命名的的常数,指定受区域设置的功能类别。

    • LC_ALL for all of the below.

    • LC_COLLATE for string comparison. see strcoll().

    • LC_CTYPE for character classification and conversion. For example strtoupper()

    • LC_MONETARY for monetary formatting for localeconv().

    • LC_NUMERIC for decimal separator for localeconv().

    • LC_TIME for date and time formatting with strftime().

    • LC_MESSAGES for system responses.

  • locale -- 如果locale是NULL或空字符串' ',语言环境的名称将被设置环境变量的值与上述类别相同的名称。

返回值

一个成功的调用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
", setlocale(LC_ALL, "en_GB"));
   strftime(buffer,80,"%c", timer );
   printf("Date is: %s
", buffer);

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

   return(0);
}

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

Locale is: en_GB
Date is: Thu 23 Aug 2012 06:39:32 MST
Locale is: de_DE
Date is: Do 23 Aug 2012 06:39:32 MST