8.2. Geniş Karakterler Ve Çokbaytlı Karakterler
char
tipinin 256 farklı değer alabilmesi
temin edilmiştir. Japonca veya Çince gibi, bazı diller 256’dan fazla
simge gerektirmektedir. Böyle dillerle çalışabilmek için, geniş
karakterler ve çokbaytlı karakterler kavramı geliştirilmiştir.
Bir geniş karakter wchar_t
adlı standart tipe aittir. Bu tamsayı tipi herhangi bir
karakter takımındaki bütün değerleri gösterebilecek kadar büyük olan, normalde
16 bitlik bir tiptir. Geniş karakterlerden oluşan diziler,
başlangıçtaki "
’ın hemen önüne bir L
harfi konarak belirtilir. Karakter değişmezleri için de, benzer şekilde,
'
’ın önüne L
konur.
wchar_t gkd[] = L"Bir genis karakter dizisi"; wchar_t gk = L'h';
Bir çokbaytlı karakter, çevresel bir aygıta yazılabilecek,
bir veya birden fazla bayttan oluşan, sıradan bir karakter sırasıdır.
Çokbaytlı bir karakter dizisinin uzunluğunu elde etmek için
mblen
fonksiyonu kullanılır.
Bu iki karakter türü birbirleriyle yakın ilişkili oldukları için, bunlar arasında dönüştürme yapmayı isteriz. Aşağıdaki fonksiyonlar bu işi yaparlar:
wctomb
bir geniş karakteri bir çokbaytlı karaktere,
mbtowc
bir çokbaytlı karakteri bir geniş karaktere,
wcstombs
bir geniş karakter dizisini bir çokbaytlı karakter dizisine,
mbstowcs
bir çokbaytlı karakter dizisini bir geniş karakter dizisine dönüştürür.