Latest web development tutorials

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"));
   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: 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>