C庫函數(shù) char *setlocale(int category, const char *locale) 設(shè)置或讀取位置相關(guān)的信息。
以下是聲明的setLocale() 函數(shù)。
char *setlocale(int category, const char *locale)
category -- 這是已命名的的常數(shù),指定受區(qū)域設(shè)置的功能類別。
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或空字符串' ',語言環(huán)境的名稱將被設(shè)置環(huán)境變量的值與上述類別相同的名稱。
一個成功的調(diào)用setlocale()返回一個不透明的字符串所對應(yīng)的語言環(huán)境集合。如果不能兌現(xiàn)的請求,返回值是NULL。
下面的例子顯示使用的setlocale()函數(shù)。
#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); }
讓我們編譯和運行上面的程序,這將產(chǎn)生以下結(jié)果:
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