C語言locale頭文件(locale.h)中setlocale函數的用法及代碼示例。
用法:
char* setlocale (int category, const char* locale);
設置或檢索語言環境
語言環境包含有關如何解釋和執行某些輸入/輸出以及轉換操作的信息,並考慮了位置和特定於語言的設置。
大多數運行環境都會根據用戶首選項或本地化設置某些本地化信息。但是,獨立於該係統語言環境,所有C程序在開始時都具有"C"語言環境集,這是一個相當中性的語言環境,具有最少的語言環境信息,可以使程序的結果可預測。為了在環境中使用默認的語言環境設置,可以使用
""
作為論點locale。程序啟動時,選擇的語言環境是
"C" locale
,與通過調用設置的相同setlocale(LC_ALL,"C")
。可以通過調用選擇在環境中選擇的語言環境設置
setlocale(LC_ALL,"")
。受此函數調用影響的當前語言環境部分由參數指定category。
參數
- category
- 受影響的語言環境的部分。它是以下常量值之一,在其中定義為宏<clocale>:
值 受影響的區域的一部分 LC_ALL 整個語言環境。 LC_COLLATE 影響行為strcoll和strxfrm。 LC_CTYPE 影響字符處理函數(<cctype>, 除了isdigit和isxdigit),以及多字節和寬字符函數。 LC_MONETARY 影響由返回的貨幣格式設置信息localeconv。 LC_NUMERIC 影響格式化的輸入/輸出操作和字符串格式化函數中的小數點字符,以及返回的非貨幣信息localeconv。 LC_TIME 影響行為strftime。 - locale
- 包含C語言環境名稱的C字符串。這些是特定於係統的,但是至少必須存在以下兩個語言環境:
如果此參數的值為區域名稱 描述 "C"
最小的"C"語言環境 ""
環境的默認語言環境 NULL
,該函數不會對當前語言環境進行任何更改,但是函數仍會返回當前語言環境的名稱。
返回值
成功後,指向C字符串的指針,該字符串標識當前為category。如果category是LC_ALL並且將語言環境的不同部分設置為不同的值,返回的字符串以庫實現之間可能有所不同的格式提供此信息。如果該函數無法設置新的語言環境,則不會進行修改,並且將返回空指針。
示例
/* setlocale example */
#include <stdio.h> /* printf */
#include <time.h> /* time_t, struct tm, time, localtime, strftime */
#include <locale.h> /* struct lconv, setlocale, localeconv */
int main ()
{
time_t rawtime;
struct tm * timeinfo;
char buffer [80];
struct lconv * lc;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
int twice=0;
do {
printf ("Locale is: %s\n", setlocale(LC_ALL,NULL) );
strftime (buffer,80,"%c",timeinfo);
printf ("Date is: %s\n",buffer);
lc = localeconv ();
printf ("Currency symbol is: %s\n-\n",lc->currency_symbol);
setlocale (LC_ALL,"");
} while (!twice++);
return 0;
}
運行前麵的代碼時,可能的輸出之一是:
Locale is: C Date is: 01/15/07 13:33:47 Currency symbol is: - Locale is: English_United States.1252 Date is: 1/15/07 1:33:47 PM Currency symbol is: $ - |
相關用法
注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C setlocale function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。