位置:首頁 > 高級語言 > 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