mbstowcs ("multibyte string to wide character string" kısaltması) işlevi dizge boş karakter sonlandırmalı çokbaytlı karakter dizgesini geniş karakter kodlu bir diziye dönüştürür ve sonucun ilk boyut geniş karakterini gdizge içinde saklar. Sonlandıran boş karakter boyuta dahildir. Bu durumda dizge'den elde edilen geniş karakterlerin sayısı boyut'tan fazla ise sonuç sonlandırıcı boş karakteri içermeyecektir.
dizge'deki karakterlerin dönüşümü ilk öteleme durumuyla başlar.
Eğer geçersiz bir çokbaytlı karakter dizgesi bulunursa, mbstowcs işlevi -1 değeri ile döner. Aksi takdirde gdizge dizisi içinde saklanan geniş karakterlerin sayısı ile döner. Bu sayı boyut'tan küçükse sonlandırıcı boş karakter dahil değildir.
Aşağıdaki örnekte bir çokbaytlı karakter dizisinin dönüşümü ve elde edilen sonuç için nasıl yer ayrılacağı gösterilmiştir.
wchar_t *
mbstowcs_alloc (const char *string)
{
size_t size = strlen (string) + 1;
wchar_t *buf = xmalloc (size * sizeof (wchar_t));
size = mbstowcs (buf, string, size);
if (size == (size_t) -1)
return NULL;
buf = xrealloc (buf, (size + 1) * sizeof (wchar_t));
return buf;
}