C標準庫參考指南系列譯文(6)locale.h
英文原文:http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.6.html
原文作者:Eric Huss
中文譯者:柳驚鴻 Poechant
版權宣告:本文的原文版權歸Eric Huss所有,中文譯文版權歸Poechant所有。轉載請註明來自"柳大的CSDN部落格":http://blog.csdn.net/poechant
6. locale.h
標頭檔案locale對設定具體位置資訊很有用。
變數:
struct lconv
巨集:
NULL
LC_ALL
LC_COLLATE
LC_CTYPE
LC_MONETARY
LC_NUMERIC
LC_TIME
函式:
localeconv();
setlocale();
6.1. Variables and Definitions
資料結構“lconv”包含下面這些成員變數。這個資料結構的使用,將在“6.3 localeconv”中描述。
char *decimal_point;
char *thousands_sep;
char *grouping;
char *int_curr_symbol;
char *currency_symbol;
char *mon_decimal_point;
char *mon_thousands_sep;
char *mon_grouping;
char *positive_sign;
char *negative_sign;
char int_frac_digits;
char frac_digits;
char p_cs_precedes;
char p_sep_by_space;
char n_cs_precedes;
char n_sep_by_space;
char p_sign_posn;
char n_sign_posn;
巨集“LC_”將會在6.2 setlocale中描述。“NULL”是空指標常量值。
6.2. setlocale
宣告:
char *setlocale(intcategory, const char *locale);
讀寫位置相關資訊。
category的可能值有:
LC_ALL |
設定所有資訊。 |
LC_COLLATE |
影響strcoll和strxfrm函式。 |
LC_CTYPE |
影響所有字元函式。 |
LC_MONETARY |
影響由localeconv函式提供的貨幣資訊。 |
LC_NUMERIC |
影響十進位制小數格式和localeconv函式提供的資訊。 |
LC_TIME |
影響strftime函式。 |
"C"可以將locale置為正常的C翻譯環境設定(預設)。空值(即"")可將locale值為本地環境設定。空指標(NULL)會使“setlocale”函式返回一個指向與當前設定對應的category相關聯的字串的指標(不產生任何改變)。其他所有值由實現確定。
在成功設定後,setlocale函式會返回一個指向之前的位置資訊設定的字串。若失敗,則返回NULL。
例項:
#include<locale.h>
#include<stdio.h>
int main(void)
{
char *old_locale;
old_locale=setlocale(LC_ALL,"C");
printf("The preivous setting was %s.\n",old_locale);
return 0;
}
6.3. localeconv
宣告:
struct lconv *localeconv(void);
置“lconv”資料結構為當前的位置資訊設定。
在這個資料結構中的字串指標,可能指向一個空串(即""),這表明這個值是不可用的。字元型別都是非負整數。如果值為CHAR_MAX,則這個值不可用。
lconv成員變數:
char *decimal_point |
非貨幣值的十進位制數的小數點符號。 |
char *thousands_sep |
非貨幣值的千位分隔符。 |
char *grouping |
一個表明在非貨幣數量中每組大小的字串。每個字元代表一個整數值中相應數字組的大小。0值表示最前面的值也代表後面每個組的值。 |
char *int_curr_symbol |
用於國際貨幣符號。前面的三個字元遵從ISO 4217:1987標準,第四個字元隔離貨幣符號和貨幣值。 |
char *currency_symbol |
本地貨幣符號。 |
char *mon_decimal_point |
貨幣值的十進位制數的小數點符號。 |
char *mon_thousands_sep |
貨幣值的千位分隔符。 |
char *mon_grouping |
與grouping類似,但是是用於貨幣值的。 |
char *positive_sign |
正貨幣值符號。 |
char *negative_sign |
負貨幣值符號。 |
char int_frac_digits |
國際貨幣值中,小數點後面的數字個數。 |
char frac_digits |
貨幣值中,小數點後面的數字個數。 |
char p_cs_precedes |
其中的cs表示currency symbol。如果該值取1的時候,currency_symbol出現在一個正貨幣值前面。如果該值取0的時候,currency_symbol出現在一個負貨幣值後面。 |
char p_sep_by_space |
其中的sep表示separate。如果該值取1的時候,則用空格將currency_symbol和正貨幣值分隔開。如果該值取0,則不用空格將currency_symbol和正貨幣值分隔開。 |
char n_cs_precedes |
與p_cs_precedes類似,不過是針對負貨幣值的。 |
char n_sep_by_space |
與p_sep_precedes類似,不過是針對負貨幣值的。 |
char p_sign_posn |
在正貨幣值中positive_sign的位置。 |
char n_sign_posn |
在負貨幣值中negative_sign的位置。 |
下面這些值用於p_sign_posn和n_sign_posn:
0 |
圓括號來包裹數值和貨幣符號。 |
1 |
符號放在數值和貨幣符號前。 |
2 |
符號放在數值和貨幣符號後。 |
3 |
符號直接放在貨幣符號前。 |
4 |
符號直接放在貨幣符號後。 |
例項:
#include<locale.h>
#include<stdio.h>
int main(void)
{
struct lconv locale_structure;
struct lconv *locale_ptr=&locale_structure;
locale_ptr=localeconv();
printf("Decimal point: %s",locale_ptr->decimal_point);
printf("Thousands Separator: %s",locale_ptr->thousands_sep);
printf("Grouping: %s",locale_ptr->grouping);
printf("International Currency Symbol: %s",locale_ptr->int_curr_symbol);
printf("Currency Symbol: %s",locale_ptr->currency_symbol);
printf("Monetary Decimal Point: %s",locale_ptr->mon_decimal_point);
printf("Monetary Thousands Separator: %s",locale_ptr->mon_thousands_sep);
printf("Monetary Grouping: %s",locale_ptr->mon_grouping);
printf("Monetary Positive Sign: %s",locale_ptr->positive_sign);
printf("Monetary Negative Sign: %s",locale_ptr->negative_sign);
printf("Monetary Intl Decimal Digits: %c",locale_ptr->int_frac_digits);
printf("Monetary Decimal Digits: %c",locale_ptr->frac_digits);
printf("Monetary + Precedes: %c",locale_ptr->p_cs_precedes);
printf("Monetary + Space: %c",locale_ptr->p_sep_by_space);
printf("Monetary - Precedes: %c",locale_ptr->n_cs_precedes);
printf("Monetary - Space: %c",locale_ptr->n_sep_by_space);
printf("Monetary + Sign Posn: %c",locale_ptr->p_sign_posn);
printf("Monetary - Sign Posn: %c",locale_ptr->n_sign_posn);
}
該系列譯文在持續更新中⋯⋯
C標準庫參考指南系列譯文(1)assert.h
C標準庫參考指南系列譯文(2)ctype.h
C標準庫參考指南系列譯文(3)errno.h
C標準庫參考指南系列譯文(4)float.h
C標準庫參考指南系列譯文(5)limits.h
C標準庫參考指南系列譯文(6)locale.h
C標準庫參考指南系列譯文(7)math.h
C標準庫參考指南系列譯文(8)setjmp.h
C標準庫參考指南系列譯文(9)signal.h
C標準庫參考指南系列譯文(10)stdarg.h
C標準庫參考指南系列譯文(11)stddef.h
C標準庫參考指南系列譯文(12)stdio.h(A)
版權宣告:本文的原文版權歸Eric Huss所有,中文譯文版權歸Poechant所有。轉載請註明來自"柳大的CSDN部落格":http://blog.csdn.net/poechant
-
相關文章
- C標準庫參考指南系列譯文
- C標準庫參考指南系列譯文(11)stddef.h
- C標準庫參考指南系列譯文(10)stdarg.h
- C標準庫參考指南譯文系列(8)setjmp.h
- C標準庫參考指南系列譯文(7)math.h
- C標準庫參考指南系列譯文(5)limits.hMIT
- C標準庫參考指南系列譯文(4)float.h
- C標準庫參考指南系列譯文(3)errno.h
- C標準庫參考指南系列譯文(2)ctype.h
- C標準庫參考指南系列譯文(1)assert.h
- C標準庫參考指南系列譯文(12)stdio.h(A)
- C標準庫參考指南系列譯文(9)signal.h
- 轉 《五蠹》參考譯文
- POCO庫中文程式設計參考指南(6)Poco::Timestamp程式設計
- SR 提交email 標準格式 --- 供參考AI
- 軟體測試BUG參考標準
- C 標準庫 -
- C++標準庫、C++標準模版庫介紹C++
- 前端參考指南前端
- C++標準庫C++
- BOOST庫 學習參考完全開發指南
- c/c++ 標準庫 vectorC++
- 找java培訓機構有哪些參考標準Java
- C標準庫學習
- - C語言標準庫C語言
- C++標準庫:chronoC++
- C++標準庫:randomC++random
- Elasticsearch 參考指南(介紹)Elasticsearch
- C 標準庫 – ctype.h
- C++標準模板庫------容器C++
- C++標準庫::拾遺C++
- POCO庫中文程式設計參考指南(1)總覽程式設計
- 什麼是 C 和 C ++ 標準庫?
- c/c++ 標準庫 map set 插入C++
- c/c++ 標準庫 迭代器(iterator)C++
- HTML標籤參考(一)HTML
- #region(C# 參考)C#
- Spring Boot 參考指南(Hazelcast)Spring BootAST