_create_locale
, _wcreate_locale
Membuat objek lokal.
Sintaks
_locale_t _create_locale(
int category,
const char *locale
);
_locale_t _wcreate_locale(
int category,
const wchar_t *locale
);
Parameter
category
Kategori.
locale
Penentu lokal.
Nilai hasil
Jika valid locale
dan category
diberikan, fungsi mengembalikan pengaturan lokal yang ditentukan sebagai _locale_t
objek. Pengaturan lokal program saat ini tidak diubah.
Keterangan
Fungsi ini _create_locale
memungkinkan Anda membuat objek yang mewakili pengaturan khusus wilayah tertentu, untuk digunakan dalam versi khusus lokal dari banyak fungsi CRT (fungsi dengan akhiran _l
). Perilaku ini mirip setlocale
dengan , kecuali bahwa alih-alih menerapkan pengaturan lokal yang ditentukan ke lingkungan saat ini, pengaturan disimpan dalam _locale_t
struktur yang dikembalikan. Struktur _locale_t
harus dibebaskan menggunakan _free_locale
ketika tidak lagi diperlukan.
_wcreate_locale
adalah versi karakter luas dari _create_locale
; locale
argumen ke _wcreate_locale
adalah string karakter lebar. _wcreate_locale
dan _create_locale
berulah secara identik jika tidak.
Argumen category
menentukan bagian perilaku khusus lokal yang terpengaruh. Bendera yang digunakan untuk category
dan bagian program yang mereka pengaruhi seperti yang ditunjukkan dalam tabel ini:
category bendera |
Mempengaruhi |
---|---|
LC_ALL |
Semua kategori, seperti yang tercantum di bawah ini. |
LC_COLLATE |
Fungsi strcoll , , wcscoll _stricoll , _wcsicoll , strxfrm _strncoll , _strnicoll , , _wcsncoll , _wcsnicoll , dan wcsxfrm . |
LC_CTYPE |
Fungsi penanganan karakter (kecuali isdigit , , isxdigit , mbstowcs dan mbtowc , yang tidak terpengaruh). |
LC_MONETARY |
Informasi pemformatan moneter yang dikembalikan oleh localeconv fungsi . |
LC_NUMERIC |
Karakter titik desimal untuk rutinitas output yang diformat (seperti printf ), untuk rutinitas konversi data, dan untuk informasi pemformatan non-moneter yang dikembalikan oleh localeconv . Selain karakter titik desimal, LC_NUMERIC mengatur pemisah ribuan dan string kontrol pengelompokan yang dikembalikan oleh localeconv . |
LC_TIME |
Fungsi strftime dan wcsftime . |
Fungsi ini memvalidasi category
parameter dan locale
. Jika parameter kategori bukan salah satu nilai yang diberikan dalam tabel sebelumnya atau jika locale
adalah NULL
, fungsi mengembalikan NULL
.
Argumen locale
adalah penunjuk ke string yang menentukan lokal. Untuk informasi tentang format locale
argumen, lihat Nama lokal, Bahasa, dan string Negara/Wilayah.
Argumen locale
dapat mengambil beberapa jenis nilai: nama lokal, string bahasa, string bahasa dan kode negara/wilayah, halaman kode, atau kombinasi string bahasa, kode negara/wilayah, dan halaman kode. Set (nama lokal, bahasa, kode negara/wilayah, dan halaman kode yang tersedia) mencakup semua yang didukung oleh Windows NLS API. Kumpulan dukungan nama _create_locale
lokal dijelaskan dalam string Nama lokal, Bahasa, dan Negara/Wilayah. Kumpulan string bahasa dan negara/wilayah yang didukung oleh _create_locale
tercantum dalam String bahasa dan string Negara/Wilayah.
Untuk informasi selengkapnya tentang pengaturan lokal, lihat setlocale
, _wsetlocale
.
Nama sebelumnya dari fungsi ini, __create_locale
(dengan dua garis bawah terkemuka), telah ditolak.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_create_locale |
<locale.h> |
_wcreate_locale |
<locale.h> atau <wchar.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_create_locale.c
// Sets the current locale to "de-CH" using the
// setlocale function and demonstrates its effect on the strftime
// function.
#include <stdio.h>
#include <locale.h>
#include <time.h>
int main(void)
{
time_t ltime;
struct tm thetime;
unsigned char str[100];
_locale_t locale;
// Create a locale object representing the German (Switzerland) locale
locale = _create_locale(LC_ALL, "de-CH");
time (<ime);
_gmtime64_s(&thetime, <ime);
// %#x is the long date representation, appropriate to
// the current locale
if (!_strftime_l((char *)str, 100, "%#x",
(const struct tm *)&thetime, locale))
{
printf("_strftime_l failed!\n");
}
else
{
printf("In de-CH locale, _strftime_l returns '%s'\n", str);
}
_free_locale(locale);
// Create a locale object representing the default C locale
locale = _create_locale(LC_ALL, "C");
time(<ime);
_gmtime64_s(&thetime, <ime);
if (!_strftime_l((char *)str, 100, "%#x",
(const struct tm *)&thetime, locale))
{
printf("_strftime_l failed!\n");
}
else
{
printf("In 'C' locale, _strftime_l returns '%s'\n", str);
}
_free_locale(locale);
}
In de-CH locale, _strftime_l returns 'Samstag, 9. Februar 2002'
In 'C' locale, _strftime_l returns 'Saturday, February 09, 2002'
Lihat juga
Nama lokal, Bahasa, dan string Negara/Wilayah
String bahasa
String Negara/Wilayah
_free_locale
_configthreadlocale
setlocale
Lokal
localeconv
_mbclen
, , mblen
_mblen_l
strlen
, , wcslen
_mbslen
, _mbslen_l
, , _mbstrlen
,_mbstrlen_l
mbstowcs
, _mbstowcs_l
mbtowc
, _mbtowc_l
_setmbcp
setlocale
, _wsetlocale
strcoll
Fungsi
strftime
, , wcsftime
_strftime_l
,_wcsftime_l
strxfrm
, , wcsxfrm
_strxfrm_l
,_wcsxfrm_l
wcstombs
, _wcstombs_l
wctomb
, _wctomb_l