nl_langinfo ()- 擷取語言環境資訊
格式
#include <langinfo.h>
#include <nl_types.h>
char *nl_langinfo(nl_item item);語言層次
XPG4
安全執行緒
否
區分語言環境
此函數的行為可能受到現行語言環境的 LC_CTYPE、LC_MESSAGES、LC_MONETARY、LC_NUMERIC 及 LC_TIME 種類的影響。 在編譯指令上指定 LOCALETYPE (*CLD) 時,無法使用此函數。 如需相關資訊,請參閱 瞭解 CCSID 及語言環境。
說明
nl_langinfo() 函數會從現行語言環境中擷取字串,該字串說明 item指定的所要求資訊。
支援從現行語言環境擷取下列資訊:
| 項目 | 說明 |
|---|---|
| 字碼集 | 字元格式的語言環境 CCSID |
| _T_FMT | 用於格式化日期和時間的字串 |
| _FMT | 日期格式字串 |
| T_FMT | 時間格式字串 |
| _FMT_AMPM | a.m. 或 p.m。 時間格式字串 |
| AM_STR | 子午線貼文 |
| PM_STR | 子午線貼文 |
| DAY_1 | 星期幾第一天的名稱 (例如, Sunday) |
| DAY_2 | 星期第二天的名稱 (例如,星期一) |
| DAY_3 | 星期第三天的名稱 (例如,星期二) |
| DAY_4 | 星期第四天的名稱 (例如,星期三) |
| DAY_5 | 每週第五天的名稱 (例如,星期四) |
| DAY_6 | name of the 6th day of the week (for example ,星期五) |
| DAY_7 | 一週第七天的名稱 (例如,星期六) |
| ABDAY_1 | 一週第一天的縮寫名稱 |
| ABDAY_2 | 星期第二天的縮寫名稱 |
| ABDAY_3 | 星期第三天的縮寫名稱 |
| ABDAY_4 | 每週第四天的縮寫名稱 |
| ABDAY_5 | 每週第五天的縮寫名稱 |
| ABDAY_6 | 每週第六天的縮寫名稱 |
| ABDAY_7 | 星期第七天的縮寫名稱 |
| MON_1 | 年份第一個月的名稱 |
| MON_2 | 年度第二個月的名稱 |
| MON_3 | name of the third month of the year |
| MON_4 | 年份第四個月的名稱 |
| MON_5 | 年度第五個月的名稱 |
| MON_6 | 年度第六個月的名稱 |
| MON_7 | 年度第七個月的名稱 |
| MON_8 | 年度第八個月的名稱 |
| MON_9 | 年度第九個月的名稱 |
| MON_10 | name of the 10 month of the year |
| MON_11 | 年度第 11 個月的名稱 |
| MON_12 | 一年第十二個月的名稱 |
| ABMON_1 | 年份第一個月的縮寫名稱 |
| ABMON_2 | 年份第二個月的縮寫名稱 |
| ABMON_3 | 年份第三個月的縮寫名稱 |
| ABMON_4 | 年份第四個月的縮寫名稱 |
| ABMON_5 | 年份第五個月的縮寫名稱 |
| ABMON_6 | 年份第六個月的縮寫名稱 |
| ABMON_7 | 年份第七個月的縮寫名稱 |
| ABMON_8 | 年份第八個月的縮寫名稱 |
| ABMON_9 | 年度第九個月的縮寫名稱 |
| ABMON_10 | 年份第十個月的縮寫名稱 |
| ABMON_11 | 年份第 11 個月的縮寫名稱 |
| ABMON_12 | 年份第十二個月的縮寫名稱 |
| 紀元 | 紀元說明區段 |
| ERA_D_FMT | 紀元日期格式字串 |
| ERA_D_T_FMT | 紀元日期和時間格式字串 |
| ERA_T_FMT | 紀元時間格式字串 |
| ALT_DIGITS | 數字的替代符號 |
| RADIXCHAR | 基數字元 |
| THOUSEP | 千位分隔字元 |
| YESEXPR | 肯定回應表示式 |
| NOEXPR | 負面回應表示式 |
| YESSTR | Yes/no 查詢的肯定回應 |
| NOSTR | 「是/否」查詢的負面回應 |
| CRNCYSTR | 貨幣符號,如果符號應該出現在值之前,則在前面加上 '-'; 如果符號應該出現在值之後,則在 '+'; 或者 '.' 如果符號應該取代基數字元 |
傳回的值
nl_langinfo() 函數會傳回空值結束字串的指標,其中包含作用中語言或文化區域的相關資訊。 作用中語言或文化區域由最近的 setlocale() 呼叫決定。 後續對函數的呼叫會修改回覆值所指向的陣列。 使用者程式不應變更陣列。
如果項目無效,函數會傳回空字串的指標。
範例
此範例使用
nl_langinfo() 函數擷取字碼集的名稱。#include <langinfo.h>
#include <locale.h>
#include <nl_types.h>
#include <stdio.h>
int main(void)
{
printf("Current codeset is %s\n", nl_langinfo(CODESET));
return 0;
}
/************************************************************************
The output should be similar to:
Current codeset is 37
************************************************************************/