Bildirim
char* setlocale(int category, const char* locale);
Açıklama
Sistemin lokal değerlerinin tamamını veya bir kısmını belirli bir dile göre ayarlar. Eğer locale parametre değeri NULL bir işaretçi ise, fonksiyon sadece sistemin yerel değerlerini sorgular.
Parametreler
category: LC ifadesi ile başlayan makrolardan biridir. NULL bir değer atanabilir.
locale: Sistemin yerel değerler tanımlayıcısıdır.
Dönüş değeri
Eğer fonksiyon başarılı bir şekilde çalışırsa, yerel ayarları gösteren bir karakter dizisi geri döndürülür. Fonksiyon gerekli işlemi yapamışsa, NULL bir değer geri döndürülür.
Örnek
#include <stdio.h>
#include <locale.h>
int main(void) {
/* Aktif yerel ayarlar */
printf("%s\n", setlocale(LC_ALL, NULL));
printf("%.2f\n", 1275.46);
/* Yerel ayarları Türkçe'ye çevirme */
printf("%s\n", setlocale(LC_ALL, "Turkish"));
printf("%.2f\n", 1275.46);
/* Yerel ayarları İngilizce'ye çevirme */
printf("%s\n", setlocale(LC_ALL, "English"));
printf("%.2f", 1275.46);
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
C 1275.46 Turkish_Turkey.1254 1275,46 English_United States.1252 1275.46
Yukarıdaki program, önce aktif yerel ayarları, sonra sırasıyla Türkçe ve İngilizce ayarları kullanarak 1275.46 float değeri ekrana yazar. Türkçe ayarlar geçerli iken ondalık işareti olarak , (virgül), İngilizce ayarlar geçerli iken ise . (nokta) karakteri kullanılır.