6.23.18 mbsinit Function
Determines whether an object describes an initial conversion state.
Include
<wchar.h>
Prototype
int mbsinit(const mbstate_t * ps);
Arguments
ps
- a pointer to the object to check
Return Value
The function returns nonzero if ps
is a null pointer or if the pointed-to
object describes an initial conversion state; otherwise, it returns zero.
Remarks
An object of type mbstate_t
is used to describe the current conversion state
from a particular multibyte character sequence to a wide character sequence (or the reverse
conversion) based on the current locale. For both conversions, the initial conversion state
corresponds to the beginning of a new multibyte character in the initial shift state. A
zero-valued mbstate_t
always represents an initial conversion state.
Example
See the notes at the beginning of this chapter or section for
information on using printf()
or scanf()
(and other functions reading and writing the stdin
or
stdout
streams) in the example code.
#include <wchar.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char * string = "The final frontier";
mbstate_t state = {0};
wchar_t wc;
mbrtowc(&wc, string, MB_CUR_MAX, &state);
if(mbsinit(&state)) // check initial conversion state
wprintf(L"In initial conversion state\n");
else
memset(&state, 0, sizeof(state)); // set initial conversion state
}
Example Output
In initial conversion state