تاکو بتوانین زنجیره نووسه و داتاکان به شێوهی یونیکۆد بهکاربهێنین و کاریان لهگهڵدا بکهین لهبهرنامهکانی زمانی 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
له میمۆریدا بهم شێوهیه دهبێت :
|
|||||||||||||||||||