當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C語言 setlocale()用法及代碼示例



描述

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 或空字符串"",則locale 名稱將根據與上述類別同名的環境變量的值進行設置。

返回值

對 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:Fri 05 Dec 2014 10:35:02 UTC                                       
Locale is:de_DE                                                            
Date is:Fr 05 Dez 2014 10:35:02 UTC

相關用法


注:本文由純淨天空篩選整理自 C library function - setlocale()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。