mblen() — Determine Length of a Multibyte Character
Format
#include <stdlib.h>
int mblen(const char *string, size_t n);Language Level
ANSI
Threadsafe
No
Use mbrlen() instead.
Locale Sensitive
The behavior of this function might be affected by the LC_CTYPE category of the current locale. This function might be affected by the LC_UNI_CTYPE category of the current locale if LOCALETYPE(*LOCALEUCS2) or LOCALETYPE(*LOCALEUTF) is specified on the compilation command. For more information, see Understanding CCSIDs and Locales.
Description
The mblen() function
determines the length in bytes of the multibyte character pointed
to by string. n represents
the maximum number of bytes examined.
Return Value
If string is NULL,
the
mblen() function
returns: - Non-zero if the active locale allows mixed-byte strings. The function initializes the state variable.
- Zero otherwise.
If string is not NULL,
mblen() returns:
- Zero if string points to the null character.
- The number of bytes comprising the multibyte character.
- -1 if string does not point to a valid multibyte character.
Note: The
mblen(), mbtowc(), and wctomb() functions
use their own statically allocated storage and are therefore not restartable.
However, mbrlen(), mbrtowc(), and
wcrtomb() are
restartable.Example
This example uses
mblen() and mbtowc() to
convert a multibyte character into a single wide character. #include <stdio.h>
#include <stdlib.h>
int length, temp;
char string [6] = "w";
wchar_t arr[6];
int main(void)
{
/* Initialize internal state variable */
length = mblen(NULL, MB_CUR_MAX);
/* Set string to point to a multibyte character */
length = mblen(string, MB_CUR_MAX);
temp = mbtowc(arr,string,length);
arr[1] = L'\0';
printf("wide character string: %ls\n", arr);
}
Related Information
- mbrlen() — Determine Length of a Multibyte Character (Restartable)
- mbtowc() — Convert Multibyte Character to a Wide Character
- mbstowcs() — Convert a Multibyte String to a Wide Character String
- strlen() — Determine String Length
- wcslen() — Calculate Length of Wide-Character String
- wctomb() — Convert Wide Character to Multibyte Character
- <stdlib.h>