Bildirim
int mblen(const char *str, size_t n);
Açıklama
Str parametresi ile başlangıç adresi gösterilen çok byte'lı bir karakter dizisinin uzunluğunu, en fazla n parametre değeri ile gösterilen uzunlukta işlem yaparak, hesaplar.
NULL bir işaretçi ile çağrıldığında, fonksiyon dahili kaydırma durumunu başlangıç değerine sıfırlar ve çok baytlı karakterlerin duruma bağlı bir kodlama kullanıp kullanmayacağı bilgisini geri döndürür.
Parametreler
str: Çok byte'lı karakter dizisinin ilk byte değerini gösteren bir işaretçidir.
n: Karakter uzunluğu için kontrol edilecek maksimum karakter sayısıdır.
Dönüş değeri
Str parametre değeri;
Eğer str parametre değeri NULL bir işaretçi ise, başlangıç kaydırma durumunu temsil etmek için iç dönüşüm durumunu sıfırlar ve geçerli çok byte'lı kodlama duruma bağlı değilse (kaydırma dizileri kullanmazsa) 0 değerini veya duruma bağlı ise (kaydırma dizileri kullanırsa) sıfır olmayan bir değer geri döndürür.
Örnek
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
const wchar_t cwdizi[] = L"Bilgisayar";
char buffer[40];
int ret, length;
printf ("Geniş karakter dizisi: %ls\n", cwdizi);
/* Geniş karakter dizisini çoklu byte diziye çevirme */
ret = wcstombs (buffer, cwdizi, sizeof(buffer));
if (ret) {
printf("Çoklu byte karakter dizisi: %s\n", buffer);
printf("Çevrilen karakter sayısı: %d\n", ret);
}
/* buffer ile gösterilen geniş karakterin boyutunu alma */
length = mblen (buffer, sizeof(buffer));
printf("Çoklu byte karakter dizi uzunluğu: %d, karakter uzunluğu: %d", strlen(buffer), length);
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
Geniş karakter dizisi: Bilgisayar Çoklu byte karakter dizisi: Bilgisayar Çevrilen karakter sayısı: 10 Çoklu byte karakter dizi uzunluğu: 10, karakter uzunluğu: 1
Yukarıdaki program, geniş bir karakter dizisini ekrana yazdıktan sonra wcstombs() fonksiyonu ile çoklu byte dizisine çevirir. Çevrilen diziyi ve çevrilen karakter sayısını ekrana yazar. Daha sonra, mblen() fonksiyonu ile çok byte'lı dizinin ilk karakterinin boyutunu ve strlen() fonksiyonu ile dizinin boyutunu alarak ekrana yazar.