CodeBlanks Logo Icon CodeBlanks

setlocale

  • C kursu
  • İleri seviye
  • Ders 63/83
  • 5 dk

setlocale ile yerel ayar öğrenirsin.

setlocale

setlocale programın yerel ayarını (locale) değiştirir; <locale.h> başlığında tanımlıdır. Yerel; karakter sınıflandırma, sayı biçimi ve tarih biçimini etkiler.

setlocale(LC_ALL, "C") en küçük yereli seçer; yalnızca ASCII temel kümesini tanır. Boş dize "" ortam değişkenlerinden (LANG, LC_ALL) okur. İşlem başarılı olursa yerel adını döndürür; başarısızsa NULL. Bu derste deterministik çıktı için "C" kullanıyoruz.

Yerel adını almak

setlocale başarılı olduğunda yerel adını bir dize olarak döndürür. setlocale(LC_ALL, "C") her ortamda "C" dizesini verir; bu yüzden çıktı deterministiktir.

Ortam yereli (boş dize) ise LANG değişkenine bağlıdır; test makineleri arasında farklı olabilir. Yerel ayarı mbstowcs ve isalpha gibi işlevlerin davranışını da etkiler; bu yüzden çok baytlı dönüşüm öncesi setlocale çağrısı gerekir.

Uygulama Yereli kur ve yazdır

char *loc = setlocale(LC_ALL, "C"); ile yereli kur. printf("yerel: %s\n", loc); ile dönen adı yazdır. <locale.h> başlığını ekle.

Başlangıç kodu

main.c
#include <stdio.h>
#include <locale.h>

// Yereli 'C' olarak kur ve dönen adı yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>
#include <locale.h>

int main(void) {
    char *loc = setlocale(LC_ALL, "C");
    printf("yerel: %s\n", loc);
    return 0;
}

Beklenen çıktı

yerel: C

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 setlocale çağrısı

Soru
char *loc = setlocale(____, "C");
Cevap
char *loc = setlocale(LC_ALL, "C");

Açıklama: LC_ALL tüm kategorileri bir kerede ayarlar.

2 Yerel kategorilerini eşle

Kavram Anlamı
LC_ALL Tüm kategoriler
LC_CTYPE Karakter sınıfı
LC_TIME Tarih biçimi
LC_NUMERIC Sayı biçimi

3 setlocale(LC_ALL, "C") ne döndürür?

  • NULL
  • 0
  • "C" dizesi Doğru cevap
  • "tr_TR"

Açıklama: Başarıda "C" yerel adını döndürür.

İleri seviye bölümündeki tüm dersler