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
#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
#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
wchar_t c = L'____';
wchar_t c = L'A';
Açıklama: L'A' geniş karakter sabitidir.