CodeBlanks Logo Icon CodeBlanks

wchar_t

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

wchar_t ile geniş karakter öğrenirsin.

wchar_t

wchar_t, geniş karakter (wide character) türüdür; her karakteri tek bir tam sayı olarak tutar. <wchar.h> başlığında tanımlıdır. Linux'ta genelde 4 bayttır; tek bir kod noktasını doğrudan saklayabilir.

Geniş karakter sabiti L'A' biçiminde yazılır; geniş dize L"Merhaba". ASCII karakterlerin değeri char ve wchar_t'de aynıdır: (int)L'A' de 65 döner. sizeof(wchar_t) platform bağımlıdır; bu yüzden taşınabilir kod %zu ile yazdırır.

Boy ve değer

sizeof(wchar_t) derleme zamanında türün boyunu verir; Linux x86-64'te 4, Windows'ta 2'dir. Bu yüzden taşınabilir çıktı %zu ister.

Bir geniş karakterin değerini yazdırmak için printf("%d", (int)L'A'); yazarsın. 'A' ASCII olduğu için L'A' da 65 değerini taşır. Geniş karakterleri ekrana basmak için wprintf de vardır; bu derste yolunu şaşırmamak için printf ile değerleri yazdırıyoruz.

Uygulama wchar_t boy ve değer

printf("wchar_t: %zu\n", sizeof(wchar_t)); ile wchar_t boyunu yazdır. printf("değer: %d\n", (int)L'A'); ile L'A' değerini yazdır. <wchar.h> başlığını ekle.

Başlangıç kodu

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

// wchar_t boyunu sizeof ile yazdır
// L'A' değerini (int) cast ile %d olarak yazdır

int main(void) {
    return 0;
}

Örnek çözüm

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

int main(void) {
    printf("wchar_t: %zu\n", sizeof(wchar_t));
    printf("değer: %d\n", (int)L'A');
    return 0;
}

Beklenen çıktı

wchar_t: 4
değer: 65

Soru ve cevaplar

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

1 wchar_t kavramlarını eşle

Kavram Anlamı
wchar_t Geniş karakter
L'A' Geniş karakter sabiti
L"..." Geniş dize
sizeof Boy verir

2 L'A' sabitinin değeri kaçtır?

  • 0
  • 65 Doğru cevap
  • 97
  • 4

Açıklama: L'A' ASCII 'A' değerini taşır: 65.

3 Geniş karakter sabiti

Soru
wchar_t c = L'____';
Cevap
wchar_t c = L'A';

Açıklama: L'A' geniş karakter sabitidir.

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