Standart C Programlama Dili


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.