بکندباز

تابع ‎mblen()‎‎ در ‎C++‎

اندازه کاراکتر چند بایتی که توسط pmb اشاره می شود را بر می گرداند و حداکثر بایت های max را بررسی می کند. mblen، حالت shift داخلی خود را دارد که در صورت لزوم فقط با فراخوانی این تابع تغییر می کند. فراخوانی تابع با اشاره گر null به عنوان pmb  وضعیت را ریست می کند. ( و مشخص می کند که آیا کاراکترهای چند بایتی به وضعیت وابستگی دارند یا نه)

رفتار این تابع بستگی به دسته LC_CTYPE از C locale انتخابی دارد.

/* mblen example */
#include <stdio.h>/* printf */
#include <stdlib.h>/* mblen, mbtowc, wchar_t(C) */

void printbuffer (const char* pt, size_t max)
{
int length;
wchar_t dest;
mblen (NULL, 0);/* reset mblen */
mbtowc (NULL, NULL, 0);/* reset mbtowc */
while (max>0) {
length = mblen (pt, max);
if (length<1) break;
mbtowc(&dest,pt,length);
printf ("[%lc]",dest);
pt+=length; max-=length;
}
}

int main()
{
const char str [] = "test string";
printbuffer (str,sizeof(str));
return 0;
}

پارامتر های ورودی

pmb
اشاره گر به اولین بایت یک کاراکتر چند بایتی
همچنین این تابع ممکن است با یک اشاره گر null فراخوانی شود، که در این صورت تابع وضعیت shift داخلی خود را به مقدار اولیه ریست می کند و مشخص می کند که آیا کاراکترهای چند بایتی، رمزگذاری وابسته به وضعیت دارند یا نه.
max
ماکزیمم تعداد بایت های pmb که باید برای کاراکتر چند بایتی در نظر گرفته شود.
بیش از MB_CUR_MAX کاراکتردر هر مورد بررسی نمی شود.
size_t یک نوع صحیح بدون علامت است.

مقدار خروجی

اگر آرگومان ارسال شده به  pmb یک اشاره گر null نباشد، اندازه کاراکتر چند بایتی که توسط pmb  اشاره می شود را در صورتیکه تشکیل یک کاراکتر چند بایتی معتبر داده  و  کاراکتر پایانی null نباشد بر حسب بایت بر می گرداند. اگر کاراکتر پایانی null باشد تابع مقدار صفر و  در صورتی که یک کاراکتر چند بایتی معتبر را تشکیل ندهند  -1 را بر می گرداند.

اگر آرگومان ارسال شده به عنوانpmb یک اشاره گر null باشد، اگر رمزگذاری کاراکتر چند بایتی به وضعیت وابستگی داشته باشد تابع یک مقدار غیر صفر و در غیر اینصورت صفر را بر می گرداند.


اگر سوالی در رابطه با این تابع داری، می تونی توی بخش کامنت ها بپرسی:

backendbaz

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*