C 庫函數 - setlocale()

C 標準庫 - <locale.h> C 標準庫 - <locale.h>

描述

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 或空字元串 "",則區域名稱將根據環境變數值來設置,其名稱與上述的類別名稱相同。

返回值

如果成功調用 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.UTF-8")); strftime(buffer,80,"%c", timer ); printf("Date is: %s\n", buffer); printf("Locale is: %s\n", setlocale(LC_ALL, "de_DE.UTF-8")); strftime(buffer,80,"%c", timer ); printf("Date is: %s\n", 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

C 標準庫 - <locale.h> C 標準庫 - <locale.h>