تاكو بتوانین زنجیره نووسه و داتاكان به شێوهی یونیكۆد بهكاربهێنین و كاریان لهگهڵدا بكهین لهبهرنامهكانی زمانی C دا، ئهوا پێویست دهكات بۆ ههر نوسهیهك دوو بایت دابین بكرێت بۆ ههڵگرتنیان. بێگومان كه باسی یونیكۆد دهكهین زاراوهی نووسه درێژهكان wide characters دێتهكایهوه، چونكه واناسراوه كه له زمانی C دا بۆ ههر نووسهیهك تهنها یهك بایت شوێن دهگیرێت :
char c;
لێرهدا قهبارهی گۆڕدراوی c تهنها یهك بایته. ئهم باره تا ساڵی 1990 له ستانداردی ISO/IEC دا بهو شێوهیه بوو، كه لهپاشدا ستانداردی C90 ــی لهگهڵ خۆی هێنا و جۆره نواندنی wchar_t ــی بۆ نووسهدرێژهكان پێناس كرد، لهگهڵیدا چهند نهخشه و كتێبخانهیهكی تایبهتی بۆ بهكاربردنی ئامادهكرابوو، پاشان C99 ستانداردێكی نوێی بۆ ههموو جۆرهكان ڕوونكردهوه، بگره تهواوی نهخشهكان و كتێبخانهكانی هاوكار بۆ نووسهدرێژهكان و بهكاربردنیان شیكاركرابوو، تیایدا جۆری wchar_t چهسپێنرا بۆ نواندنی یونیكۆد به دابینكردنی دوو بایت. له پهڕگهی wchar.c ههموو پێناسهكان، پۆلهكردار، و نهخشهكانی تایبهت به نووسهدرێژهكان ڕوونكراونهتهوه.
نمونهیهكی ساده وهردهگرین تاكو بهكردار شێوازی بهكاربردنی wchar_t مان لا ئاشكرابێت :
#include <stdio.h>
#include <wchar.h>
int main(void)
{
wchar_t wcStr1 [20] ;
wchar_t wcStr2 [] = L"zkurd" ;
int iLen=0 ;
iLen = wcslen(wcStr2);
//
ئهنجامهكهی 5 دهبێت
printf("Length wcStr2 = %3i
", iLen);
swprintf(wcStr1,L"%4i",1234);
iLen = wcslen(wcStr1);
//ئهنجامهكهی
4 دهبێت
return 0;
}
لێرهدا :
wchar_t wcStr2 [] = L"zkurd" ;
پیتی L واته درێژ، پێناسی گۆڕدراوێك wcStr2 دهكرێت و 5 جێگای بداین دهركێت له جۆری نووسه درێژهكان. گۆڕدراوی wcStr2 [] درێژییهكهی له ڕوونكردنهوهكهدا دیاری دهكرێت.
swprintf(wcStr1,L"%4i",1234);
نهخشهی swprintf هاوشێوهی sprintf بوو بۆ نوسه درێژهكان، و ههمان شێوازی printf كاردهكهن، بێگومان لهم نمونهیهدا swprintf بۆ یونیكۆده، كه له گۆڕدراوهكهدا ههشت بایت دابین دهكات بۆ نرخی wcStr1
له میمۆریدا بهم شێوهیه دهبێت :
49 |
00 |
50 |
00 |
51 |
00 |
52 |
00 |
.. |
.. |
1 |
2 |
3 |
4 |
|