Standart C Programlama Dili


9.28. wchar.h: Genişletilmiş Çoklu Ve Geniş Karakter Kolaylıkları

Bu dosyada wchar_t, size_t ve struct tm dışında, aşağıdaki iki tip tanımlanmaktadır:

mbstate_t çokbaytlı karakter dizileri ile geniş karakter dizileri arasında dönüştürme yapmak için gerekli dönüştürme durumunu tutabilen (ve dizi olmayan) bir nesne tipi
wint_t genişletilmiş karakter kümesinin üyelerine karşılık gelen (wchar_t tipindeki) herhangi bir değeri ve genişletilmiş karakter kümesinin herhangi bir üyesine karşılık gelmeyen en az bir değeri (aşağıda WEOF’e bakınız) tutabilen ve atamalarda değerini yitirmeyen bir tamsayı tipi

Bu dosyada, NULL, WCHAR_MIN ve WCHAR_MAX makroları dışında, wint_t tipinde değişmez bir ifade olan WEOF makrosu tanımlanmaktadır. Bu makro dosya sonunu işaretlemek için bazı fonksiyonlar tarafından kabul edilmekte veya geri döndürülmektedir. Ayrıca, bazı durumlarda, genişletilmiş karakter kümesinin herhangi bir üyesine denk gelmeyen bir geniş karakter değeri olarak da kullanılmaktadır.

Bu dosyada tanımlanan fonksiyonlar ise aşağıda beş gruba ayrılmıştır.

Biçimlendirilmiş Geniş Karakter Girdi Ve Çıktı Fonksiyonları

int  fwprintf(FILE * restrict d, const wchar_t * restrict bicim, ...)
int  fwscanf(FILE * restrict d, const wchar_t * restrict bicim, ...)
int  swprintf(wchar_t * restrict kd, size_t s,
       const wchar_t * restrict bicim, ...)
int  swscanf(const wchar_t * restrict kd,
       const wchar_t * restrict bicim, ...)
int  vfwprintf(FILE * restrict d, const wchar_t * restrict bicim, va_list arg)
int  vfwscanf(FILE * restrict d, const wchar_t * restrict bicim, va_list arg)
int  vswprintf(wchar_t * restrict kd, size_t s,
       const wchar_t * restrict bicim, va_list arg)
int  vswscanf(const wchar_t * restrict kd,
       const wchar_t * restrict bicim, va_list arg)
int  vwprintf(const wchar_t * restrict bicim, va_list arg)
int  vwscanf(const wchar_t * restrict bicim, va_list arg)
int  wprintf(const wchar_t * restrict bicim, ...)
int  wscanf(const wchar_t * restrict bicim, ...)

Diğer Geniş Karakter Girdi Ve Çıktı Fonksiyonları

wint_t     fgetwc(FILE * d)
wchar_t *  fgetws(wchar_t * restrict kd, int b, FILE * restrict d)
wint_t     fputwc(wchar_t k, FILE * d)
int        fputws(const wchar_t * restrict kd, FILE * restrict d)
int        fwide(FILE * d, int mod)
wint_t     getwc(FILE * d)
wint_t     getwchar(void)
wint_t     putwc(wchar_t k, FILE * d)
wint_t     putwchar(wchar_t k)
wint_t     ungetwc(wint_t k, FILE * d)

Genel Geniş Karakter Dizisi Kolaylıkları

Geniş karakter dizisi sayısal dönüşüm fonksiyonları:

double                  wcstod(const wchar_t * restrict sg,
                          wchar_t ** restrict song)
float                   wcstof(const wchar_t * restrict sg,
                          wchar_t ** restrict song)
long double             wcstold(const wchar_t * restrict sg,
                          wchar_t ** restrict song)
long int                wcstol(const wchar_t * restrict sg,
                          wchar_t ** restrict song, int taban)
long long int           wcstoll(const wchar_t * restrict sg,
                          wchar_t ** restrict song, int taban)
unsigned long int       wcstoul(const wchar_t * restrict sg,
                          wchar_t ** restrict song, int taban)
unsigned long long int  wcstoull(const wchar_t * restrict sg,
                          wchar_t ** restrict song, int taban)

Geniş karakter dizisi kopyalama fonksiyonları:

wchar_t *  wcscpy(wchar_t * restrict kd1, const wchar_t * restrict kd2)
wchar_t *  wcsncpy(wchar_t * restrict kd1, const wchar_t * restrict kd2,
             size_t s)
wchar_t *  wmemcpy(wchar_t * restrict kd1, const wchar_t * restrict kd2,
             size_t s)
wchar_t *  wmemmove(wchar_t * kd1, const wchar_t * kd2, size_t s)

Geniş karakter dizisi birleştirme fonksiyonları:

wchar_t *  wcscat(wchar_t * restrict kd1, const wchar_t * restrict kd2)
wchar_t *  wcsncat(wchar_t * restrict kd1, const wchar_t * restrict kd2,
             size_t s)

Geniş karakter dizisi karşılaştırma fonksiyonları:

int     wcscmp(const wchar_t * kd1, const wchar_t * kd2)
int     wcscoll(const wchar_t * kd1, const wchar_t * kd2)
int     wcsncmp(const wchar_t * kd1, const wchar_t * kd2, size_t s)
size_t  wcsxfrm(wchar_t * restrict kd1, const wchar_t * restrict kd2, size_t s)
int     wmemcmp(const wchar_t * kd1, const wchar_t * kd2, size_t s)

Geniş karakter dizisi arama fonksiyonları:

wchar_t *  wcschr(const wchar_t * kd, wchar_t k)
size_t     wcscspn(const wchar_t * kd1, const wchar_t * kd2)
wchar_t *  wcspbrk(const wchar_t * kd1, const wchar_t * kd2)
wchar_t *  wcsrchr(const wchar_t * kd, wchar_t k)
size_t     wcsspn(const wchar_t * kd1, const wchar_t * kd2)
wchar_t *  wcsstr(const wchar_t * kd1, const wchar_t * kd2)
wchar_t *  wcstok(wchar_t * restrict kd1, const wchar_t * restrict kd2,
             wchar_t ** restrict g)
wchar_t *  wmemchr(const wchar_t * kd, wchar_t k, size_t s)

Çeşitli fonksiyonlar:

size_t     wcslen(const wchar_t * kd)
wchar_t *  wmemset(wchar_t * kd, wchar_t k, size_t s)

Geniş Karakter Zaman Dönüşüm Fonksiyonu

size_t  wcsftime(wchar_t * restrict kd, size_t maksboy,
          const wchar_t * restrict b, const struct tm * restrict zg)

Genişletilmiş Çokbaytlı/Geniş Karakter Dönüşüm Kolaylıkları

Tek bayt/geniş karakter dönüşüm fonksiyonları:

wint_t  btowc(int k)
int     wctob(wint_t k)

Dönüşüm durum fonksiyonu:

int     mbsinit(const mbstate_t * dg)

Yeniden başlatılabilir çokbaytlı/geniş karakter dönüşüm fonksiyonları:

size_t  mbrlen(const char * restrict kd, size_t s, mbstate_t * restrict dg)
size_t  mbrtowc(wchar_t * restrict gkg, const char * restrict kd, size_t s,
          mbstate_t * restrict dg)
size_t  wcrtomb(char * restrict kd, wchar_t gk, mbstate_t * restrict dg)

Yeniden başlatılabilir çokbaytlı/geniş karakter dizisi dönüşüm fonksiyonları:

size_t  mbsrtowcs(wchar_t * restrict hedef, const char ** restrict kaynak,
          size_t uznlk, mbstate_t * restrict dg)
size_t  wcsrtombs(char * restrict hedef, const wchar_t ** restrict kaynak,
          size_t uznlk, mbstate_t * restrict dg)